Both darcs and git support a --dry-run option for pull, but git 1.6 provides no details about what it's going to push. Take a look:

git push -v --dry-run git@github.com:markstos/foo.git
Pushing to git@github.com:markstos/foo.git
To git@github.com:markstos/foo.git
   b233f62..1eb8888  master -> master

Yes, git managed to repeat back to me the name of the remote repo not once, but twice, but didn't tell me a single thing about the patches that might be pushed. Now compare that with "darcs push --dry-run":

$ darcs push --dry-run --summary
Would push to "/home/mark/tmp/tmp2"...
Would push the following changes:
Thu Nov 13 22:24:40 EST 2008  m
  * My new patch name.

    M ./one.txt -2 +1

Making no changes:  this is a dry run.

darcs reports what's going in plain English, including the patch names and file change details. Even better, if I just used darcs push, I would have gotten an interactive prompt by default, with a built-in help system:

$ darcs push
Pushing to "/home/mark/tmp/tmp2"...
Thu Nov 13 22:24:40 EST 2008  m
  * My new patch name.
Shall I push this patch? (1/1)  [ynWsfvpxdaqjk], or ? for help:    

Using that, I can navigate between the patches, cherry pick which ones I want to push, and inspect each patch by reviewing just the file changes involved, or directly viewing the actual diffs.

The lack of an interactive "push" command for git is just one of the annoyances that cause me to continue to use darcs whenever I can, and git when I have to.

Using rsnapshot with systemd

Published on August 26, 2016