Mercurial > hg
view tests/test-repair-strip @ 9725:3f522d2fa633
diff: add --inverse option
Most of the time, one can reverse a diff by swapping the revisions passed with
-r but it happens that if you use the global -R, and diff against the tip of
the current repo, you can't swap the revisions. One use-case for that is
reviewing changes from a bundle before unbundling. One could also pipe the
output of `hg diff` to a command line filter that reverses the diff, but that
would remove the benefit from color diffs. Therefore, having an option in
`hg diff` to reverse a diff is a good thing.
The option flag selection was tricky. GNU patch uses -R/--reverse but -R is
already used as a global option and --reverse would make --rev ambiguous.
author | Yannick Gingras <ygingras@ygingras.net> |
---|---|
date | Thu, 05 Nov 2009 15:18:56 +0100 |
parents | 4a1b24dbf753 |
children | 4bb4895e1693 |
line wrap: on
line source
#!/bin/sh echo "[extensions]" >> $HGRCPATH echo "mq=">> $HGRCPATH teststrip() { hg -q up -C $1 echo % before update $1, strip $2 hg parents chmod -$3 $4 hg strip $2 2>&1 | sed 's/\(saving bundle to \).*/\1/' | sed 's/Permission denied.*\.hg\/store\/\(.*\)/Permission denied \.hg\/store\/\1/' echo % after update $1, strip $2 chmod +$3 $4 hg verify echo % journal contents if [ -f .hg/store/journal ]; then sed -e 's/\.i[^\n]*/\.i/' .hg/store/journal else echo "(no journal)" fi ls .hg/store/journal >/dev/null 2>&1 && hg recover ls .hg/strip-backup/* >/dev/null 2>&1 && hg unbundle -q .hg/strip-backup/* rm -rf .hg/strip-backup } hg init test cd test echo a > a hg -q ci -m "a" -A echo b > b hg -q ci -m "b" -A echo b2 >> b hg -q ci -m "b2" -A echo c > c hg -q ci -m "c" -A teststrip 0 2 w .hg/store/data/b.i teststrip 0 2 r .hg/store/data/b.i teststrip 0 2 w .hg/store/00manifest.i