Mercurial > hg
view tests/test-mq-header-from @ 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 | fb32ae9c76e7 |
children | 8cb81d75730c |
line wrap: on
line source
#!/bin/sh echo "[extensions]" >> $HGRCPATH echo "mq=" >> $HGRCPATH echo "[diff]" >> $HGRCPATH echo "nodates=true" >> $HGRCPATH catlog() { cat .hg/patches/$1.patch | sed -e "s/^diff \-r [0-9a-f]* /diff -r ... /" hg log --template "{rev}: {desc} - {author}\n" } echo ==== init hg init a cd a hg qinit echo ==== qnew -U hg qnew -U 1.patch catlog 1 echo ==== qref echo "1" >1 hg add hg qref catlog 1 echo ==== qref -u hg qref -u mary catlog 1 echo ==== qnew hg qnew 2.patch echo "2" >2 hg add hg qref catlog 2 echo ==== qref -u hg qref -u jane catlog 2 echo ==== qnew -U -m hg qnew -U -m "Three" 3.patch catlog 3 echo ==== qref echo "3" >3 hg add hg qref catlog 3 echo ==== qref -m hg qref -m "Drei" catlog 3 echo ==== qref -u hg qref -u mary catlog 3 echo ==== qref -u -m hg qref -u maria -m "Three (again)" catlog 3 echo ==== qnew -m hg qnew -m "Four" 4.patch echo "4" >4 hg add hg qref catlog 4 echo ==== qref -u hg qref -u jane catlog 4 echo ==== qnew with HG header hg qnew 5.patch hg qpop echo "# HG changeset patch" >>.hg/patches/5.patch echo "# User johndoe" >>.hg/patches/5.patch hg qpush 2>&1 | grep 'now at' catlog 5 echo ==== hg qref echo "5" >5 hg add hg qref catlog 5 echo ==== hg qref -U hg qref -U catlog 5 echo ==== hg qref -u hg qref -u johndeere catlog 5 echo ==== "qpop -a / qpush -a" hg qpop -a hg qpush -a hg log --template "{rev}: {desc} - {author}\n"