New feature in darcs

I have added a new UI feature to darcs that will be part of the upcomming 2.1.2 release. It allows you to list all your changes you acknowledged so far while interactively selecting changes.

So a typical session might look like this:

$ darcs record
hunk ./src/Darcs/Arguments.lhs 200
+getContent (SSHRemoteCommand s) = StringContent s
Shall I record this change? (1/21)  [ynWsfvplxdaqjk], or ? for help: y
hunk ./src/Darcs/Arguments.lhs 1462
+
+\begin{options}
+--remote-cmd
+\end{options}
+
+use the COMMAND instead of the default darcs binary. This allows for darcs
+usage in cases where the darcs binary is not in the default path.
+
Shall I record this change? (2/21)  [ynWsfvplxdaqjk], or ? for help: y
hunk ./src/Darcs/Arguments.lhs 1477
-                           "don't use SSH ControlMaster feature [DEFAULT]"],
+                           "don't use SSH ControlMaster feature [DEFAULT]",
+      DarcsArgOption [] ["remote-cmd"] SSHRemoteCommand "COMMAND"
+                          "execute COMMAND on the remote end"],
Shall I record this change? (3/21)  [ynWsfvplxdaqjk], or ? for help: y
hunk ./src/Darcs/Arguments.lhs 1493
+
+
Shall I record this change? (4/21)  [ynWsfvplxdaqjk], or ? for help: n
hunk ./src/Darcs/External.hs 52
-                                Verify, VerifySSL ) )
+                                Verify, VerifySSL ), get_ssh_remotecmd )
Shall I record this change? (5/21)  [ynWsfvplxdaqjk], or ? for help: n
hunk ./src/Darcs/External.hs 122
-copyFileOrUrl _    fou out _     | is_ssh  fou = copySSH fou out
+copyFileOrUrl opts fou out _     | is_ssh  fou = copySSH darcs fou out
+    where darcs = get_ssh_remotecmd opts
Shall I record this change? (6/21)  [ynWsfvplxdaqjk], or ? for help: l
---- Already selected changes ----
hunk ./src/Darcs/Arguments.lhs 200
+getContent (SSHRemoteCommand s) = StringContent s
hunk ./src/Darcs/Arguments.lhs 1462
+
+\begin{options}
+--remote-cmd
+\end{options}
+
+use the COMMAND instead of the default darcs binary. This allows for darcs
+usage in cases where the darcs binary is not in the default path.
+
hunk ./src/Darcs/Arguments.lhs 1477
-                           "don't use SSH ControlMaster feature [DEFAULT]"],
+                           "don't use SSH ControlMaster feature [DEFAULT]",
+      DarcsArgOption [] ["remote-cmd"] SSHRemoteCommand "COMMAND"
+                          "execute COMMAND on the remote end"],
---- end of already selected changes ----
hunk ./src/Darcs/External.hs 122
-copyFileOrUrl _    fou out _     | is_ssh  fou = copySSH fou out
+copyFileOrUrl opts fou out _     | is_ssh  fou = copySSH darcs fou out
+    where darcs = get_ssh_remotecmd opts
Shall I record this change? (6/21)  [ynWsfvplxdaqjk], or ? for help: 

I use this a lot now since when doing a lot of changes at once I want to group them semantically in the patches. When I get tired I forget which changes I actually wanted to record and with the list command I can now review what I did so far.

The shown changes will introduce a new feature that will allow you to set the remote command that should get executed at the other end of a ssh connection. But this will need a lot of testing and will be shown here soon.

Code on this site is licensed under a 2 clause BSD license, everything else unless noted otherwise is licensed under a CreativeCommonsAttribution-ShareAlike3.0UnportedLicense