tests/test-url-rev
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed, 18 Aug 2010 23:37:19 +0200
changeset 11967 6e3875a80533
parent 8167 6c82beaaa11a
permissions -rwxr-xr-x
mq/qqueue: add --purge option to delete a queue and its patch dir qqueue --delete only deletes the reference to the queue, and leaves the associated patch directory behind. There is no Mercurial-way of getting rid of that patch directory afterward. This patch adds the --purge option to qqueue, that deletes the queue from the list, and also removes the associated patch dir. If the queue was non-existant, but the patch dir was, it is removed nonetheless. This is to avoid manual intervention in the .hg directory.

#!/bin/sh
# test basic functionality of url#rev syntax

hg init repo
cd repo
echo a > a
hg ci -qAm 'add a'
hg branch foo
echo >> a
hg ci -m 'change a'
cd ..

echo '% clone repo#foo'
hg clone 'repo#foo' clone
echo '% heads'
hg --cwd clone heads
echo '% parents'
hg --cwd clone parents
sed -e 's/default.*#/default = #/' clone/.hg/hgrc
echo

echo '% changing original repo'
cd repo
echo >> a
hg ci -m 'new head of branch foo'
hg up -qC default
echo bar > bar
hg ci -qAm 'add bar'
hg log
echo

echo '% outgoing'
hg -q outgoing '../clone#foo'
echo

echo '% push'
hg -q push '../clone#foo'
hg --cwd ../clone heads
cd ..
echo

echo '% rolling back'
cd clone
hg rollback

echo '% incoming'
hg -q incoming

echo '% pull'
hg -q pull
hg heads
echo

echo '% pull should not have updated'
hg parents -q
echo '% going back to the default branch'
hg up -C 0
hg parents
echo '% no new revs, no update'
hg pull -qu
hg parents -q
echo '% rollback'
hg rollback
hg up -C 0
hg parents -q
echo '% pull -u takes us back to branch foo'
hg pull -qu
hg parents

echo '% rollback'
hg rollback
hg up -C 0
echo '% parents'
hg parents -q
echo '% heads'
hg heads -q
echo '% pull -u -r otherrev url#rev updates to rev'
hg pull -qur default default
echo '% parents'
hg parents
echo '% heads'
hg heads