diff --git a/tests/test-url-rev b/tests/test-url-rev new file mode 100755 --- /dev/null +++ b/tests/test-url-rev @@ -0,0 +1,83 @@ +#!/bin/sh +# test basic functionality of url#rev syntax + +hg init repo +cd repo +echo a > a +hg ci -qAm 'add a' -d '0 0' +hg branch foo +echo >> a +hg ci -m 'change a' -d '0 0' +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' -d '0 0' +hg up -qC default +echo bar > bar +hg ci -qAm 'add bar' -d '0 0' +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 +