|
|
#!/bin/sh
|
|
|
|
|
|
echo "[extensions]" >> $HGRCPATH
|
|
|
echo "mq=" >> $HGRCPATH
|
|
|
|
|
|
echo % help
|
|
|
hg help mq
|
|
|
|
|
|
hg init a
|
|
|
cd a
|
|
|
echo a > a
|
|
|
hg ci -Ama
|
|
|
|
|
|
hg clone . ../k
|
|
|
|
|
|
mkdir b
|
|
|
echo z > b/z
|
|
|
hg ci -Ama
|
|
|
|
|
|
echo % qinit
|
|
|
|
|
|
hg qinit
|
|
|
|
|
|
cd ..
|
|
|
hg init b
|
|
|
|
|
|
echo % -R qinit
|
|
|
|
|
|
hg -R b qinit
|
|
|
|
|
|
hg init c
|
|
|
|
|
|
echo % qinit -c
|
|
|
|
|
|
hg --cwd c qinit -c
|
|
|
hg -R c/.hg/patches st
|
|
|
|
|
|
echo % qnew implies add
|
|
|
|
|
|
hg -R c qnew test.patch
|
|
|
hg -R c/.hg/patches st
|
|
|
|
|
|
cd a
|
|
|
|
|
|
echo % qnew -m
|
|
|
|
|
|
hg qnew -m 'foo bar' test.patch
|
|
|
cat .hg/patches/test.patch
|
|
|
|
|
|
echo % qrefresh
|
|
|
|
|
|
echo a >> a
|
|
|
hg qrefresh
|
|
|
sed -e "s/^\(diff -r \)\([a-f0-9]* \)/\1 x/" \
|
|
|
-e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
|
|
|
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" .hg/patches/test.patch
|
|
|
|
|
|
echo % empty qrefresh
|
|
|
|
|
|
hg qrefresh -X a
|
|
|
echo 'revision:'
|
|
|
hg diff -r -2 -r -1
|
|
|
echo 'patch:'
|
|
|
cat .hg/patches/test.patch
|
|
|
echo 'working dir diff:'
|
|
|
hg diff --nodates -q
|
|
|
# restore things
|
|
|
hg qrefresh
|
|
|
|
|
|
echo % qpop
|
|
|
|
|
|
hg qpop
|
|
|
|
|
|
echo % qpush
|
|
|
|
|
|
hg qpush
|
|
|
|
|
|
cd ..
|
|
|
|
|
|
echo % pop/push outside repo
|
|
|
|
|
|
hg -R a qpop
|
|
|
hg -R a qpush
|
|
|
|
|
|
cd a
|
|
|
hg qnew test2.patch
|
|
|
|
|
|
echo % qrefresh in subdir
|
|
|
|
|
|
cd b
|
|
|
echo a > a
|
|
|
hg add a
|
|
|
hg qrefresh
|
|
|
|
|
|
echo % pop/push -a in subdir
|
|
|
|
|
|
hg qpop -a
|
|
|
hg --traceback qpush -a
|
|
|
|
|
|
echo % qseries
|
|
|
hg qseries
|
|
|
hg qpop
|
|
|
hg qseries -vs
|
|
|
hg qpush
|
|
|
|
|
|
echo % qapplied
|
|
|
hg qapplied
|
|
|
|
|
|
echo % qtop
|
|
|
hg qtop
|
|
|
|
|
|
echo % qprev
|
|
|
hg qprev
|
|
|
|
|
|
echo % qnext
|
|
|
hg qnext
|
|
|
|
|
|
echo % pop, qnext, qprev, qapplied
|
|
|
hg qpop
|
|
|
hg qnext
|
|
|
hg qprev
|
|
|
hg qapplied
|
|
|
|
|
|
echo % commit should fail
|
|
|
hg commit
|
|
|
|
|
|
echo % push should fail
|
|
|
hg push ../../k
|
|
|
|
|
|
echo % qunapplied
|
|
|
hg qunapplied
|
|
|
|
|
|
echo % qpush/qpop with index
|
|
|
hg qnew test1b.patch
|
|
|
echo 1b > 1b
|
|
|
hg add 1b
|
|
|
hg qrefresh
|
|
|
hg qpush 2
|
|
|
hg qpop 0
|
|
|
hg qpush test.patch+1
|
|
|
hg qpush test.patch+2
|
|
|
hg qpop test2.patch-1
|
|
|
hg qpop test2.patch-2
|
|
|
hg qpush test1b.patch+1
|
|
|
|
|
|
echo % push should succeed
|
|
|
hg qpop -a
|
|
|
hg push ../../k
|
|
|
|
|
|
echo % strip
|
|
|
cd ../../b
|
|
|
echo x>x
|
|
|
hg ci -Ama
|
|
|
hg strip tip 2>&1 | sed 's/\(saving bundle to \).*/\1/'
|
|
|
hg unbundle .hg/strip-backup/*
|
|
|
|
|
|
echo '% cd b; hg qrefresh'
|
|
|
hg init refresh
|
|
|
cd refresh
|
|
|
echo a > a
|
|
|
hg ci -Ama -d'0 0'
|
|
|
hg qnew -mfoo foo
|
|
|
echo a >> a
|
|
|
hg qrefresh
|
|
|
mkdir b
|
|
|
cd b
|
|
|
echo f > f
|
|
|
hg add f
|
|
|
hg qrefresh
|
|
|
sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
|
|
|
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" ../.hg/patches/foo
|
|
|
echo % hg qrefresh .
|
|
|
hg qrefresh .
|
|
|
sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
|
|
|
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" ../.hg/patches/foo
|
|
|
hg status
|
|
|
|
|
|
echo % qpush failure
|
|
|
cd ..
|
|
|
hg qrefresh
|
|
|
hg qnew -mbar bar
|
|
|
echo foo > foo
|
|
|
echo bar > bar
|
|
|
hg add foo bar
|
|
|
hg qrefresh
|
|
|
hg qpop -a
|
|
|
echo bar > foo
|
|
|
hg qpush -a
|
|
|
hg st
|
|
|
|
|
|
cat >>$HGRCPATH <<EOF
|
|
|
[diff]
|
|
|
git = True
|
|
|
EOF
|
|
|
cd ..
|
|
|
hg init git
|
|
|
cd git
|
|
|
hg qinit
|
|
|
|
|
|
hg qnew -m'new file' new
|
|
|
echo foo > new
|
|
|
chmod +x new
|
|
|
hg add new
|
|
|
hg qrefresh
|
|
|
sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
|
|
|
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" .hg/patches/new
|
|
|
|
|
|
hg qnew -m'copy file' copy
|
|
|
hg cp new copy
|
|
|
hg qrefresh
|
|
|
sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
|
|
|
-e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" .hg/patches/copy
|
|
|
|
|
|
hg qpop
|
|
|
hg qpush
|
|
|
hg qdiff
|
|
|
cat >>$HGRCPATH <<EOF
|
|
|
[diff]
|
|
|
git = False
|
|
|
EOF
|
|
|
hg qdiff --git
|
|
|
|
|
|
cd ..
|
|
|
hg init slow
|
|
|
cd slow
|
|
|
hg qinit
|
|
|
echo foo > foo
|
|
|
hg add foo
|
|
|
hg ci -m 'add foo'
|
|
|
hg qnew bar
|
|
|
echo bar > bar
|
|
|
hg add bar
|
|
|
hg mv foo baz
|
|
|
hg qrefresh --git
|
|
|
hg up -C 0
|
|
|
echo >> foo
|
|
|
hg ci -m 'change foo'
|
|
|
hg up -C 1
|
|
|
hg qrefresh --git 2>&1 | grep -v 'saving bundle'
|
|
|
cat .hg/patches/bar
|
|
|
hg log -vC --template '{rev} {file_copies%filecopy}\n' -r .
|
|
|
hg qrefresh --git
|
|
|
cat .hg/patches/bar
|
|
|
hg log -vC --template '{rev} {file_copies%filecopy}\n' -r .
|
|
|
|
|
|
echo
|
|
|
hg up -C 1
|
|
|
echo >> foo
|
|
|
hg ci -m 'change foo again'
|
|
|
hg up -C 2
|
|
|
hg mv bar quux
|
|
|
hg mv baz bleh
|
|
|
hg qrefresh --git 2>&1 | grep -v 'saving bundle'
|
|
|
cat .hg/patches/bar
|
|
|
hg log -vC --template '{rev} {file_copies%filecopy}\n' -r .
|
|
|
hg mv quux fred
|
|
|
hg mv bleh barney
|
|
|
hg qrefresh --git
|
|
|
cat .hg/patches/bar
|
|
|
hg log -vC --template '{rev} {file_copies%filecopy}\n' -r .
|
|
|
|
|
|
echo '% strip again'
|
|
|
cd ..
|
|
|
hg init strip
|
|
|
cd strip
|
|
|
touch foo
|
|
|
hg add foo
|
|
|
hg ci -m 'add foo' -d '0 0'
|
|
|
echo >> foo
|
|
|
hg ci -m 'change foo 1' -d '0 0'
|
|
|
hg up -C 0
|
|
|
echo 1 >> foo
|
|
|
hg ci -m 'change foo 2' -d '0 0'
|
|
|
HGMERGE=true hg merge
|
|
|
hg ci -m merge -d '0 0'
|
|
|
hg log
|
|
|
hg strip 1 2>&1 | sed 's/\(saving bundle to \).*/\1/'
|
|
|
hg log
|
|
|
cd ..
|
|
|
|
|
|
echo '% qclone'
|
|
|
qlog()
|
|
|
{
|
|
|
echo 'main repo:'
|
|
|
hg log --template ' rev {rev}: {desc}\n'
|
|
|
echo 'patch repo:'
|
|
|
hg -R .hg/patches log --template ' rev {rev}: {desc}\n'
|
|
|
}
|
|
|
hg init qclonesource
|
|
|
cd qclonesource
|
|
|
echo foo > foo
|
|
|
hg add foo
|
|
|
hg ci -m 'add foo'
|
|
|
hg qinit -c
|
|
|
hg qnew patch1
|
|
|
echo bar >> foo
|
|
|
hg qrefresh -m 'change foo'
|
|
|
hg qci -m checkpoint
|
|
|
qlog
|
|
|
cd ..
|
|
|
|
|
|
# repo with patches applied
|
|
|
hg qclone qclonesource qclonedest
|
|
|
cd qclonedest
|
|
|
qlog
|
|
|
cd ..
|
|
|
|
|
|
# repo with patches unapplied
|
|
|
cd qclonesource
|
|
|
hg qpop -a
|
|
|
qlog
|
|
|
cd ..
|
|
|
hg qclone qclonesource qclonedest2
|
|
|
cd qclonedest2
|
|
|
qlog
|
|
|
cd ..
|
|
|
|
|
|
|