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"