tests/test-parentrevspec.t
changeset 12475 c2b7bee11410
parent 10119 bb5ea66789e3
child 12743 4c4aeaab2339
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-parentrevspec.t	Sun Sep 26 13:44:49 2010 -0500
@@ -0,0 +1,105 @@
+
+  $ commit()
+  > {
+  >     msg=$1
+  >     p1=$2
+  >     p2=$3
+  > 
+  >     if [ "$p1" ]; then
+  > 	hg up -qC $p1
+  >     fi
+  > 
+  >     if [ "$p2" ]; then
+  > 	HGMERGE=true hg merge -q $p2
+  >     fi
+  > 
+  >     echo >> foo
+  > 
+  >     hg commit -qAm "$msg"
+  > }
+  $ hg init repo
+  $ cd repo
+  $ echo '[extensions]' > .hg/hgrc
+  $ echo 'parentrevspec =' >> .hg/hgrc
+  $ commit '0: add foo'
+  $ commit '1: change foo 1'
+  $ commit '2: change foo 2a'
+  $ commit '3: change foo 3a'
+  $ commit '4: change foo 2b' 1
+  $ commit '5: merge' 3 4
+  $ commit '6: change foo again'
+  $ hg log --template '{rev}:{node|short} {parents}\n'
+  6:755d1e0d79e9 
+  5:9ce2ce29723a 3:a3e00c7dbf11 4:bb4475edb621 
+  4:bb4475edb621 1:5d953a1917d1 
+  3:a3e00c7dbf11 
+  2:befc7d89d081 
+  1:5d953a1917d1 
+  0:837088b6e1d9 
+  $ echo
+  
+  $ lookup()
+  > {
+  >     for rev in "$@"; do
+  > 	printf "$rev: "
+  > 	hg id -nr $rev
+  >     done
+  >     true
+  > }
+  $ tipnode=`hg id -ir tip`
+
+should work with tag/branch/node/rev
+
+  $ for r in tip default $tipnode 6; do
+  >     lookup "$r^"
+  > done
+  tip^: 5
+  default^: 5
+  755d1e0d79e9^: 5
+  6^: 5
+  $ echo
+  
+
+some random lookups
+
+  $ lookup "6^^" "6^^^" "6^^^^" "6^^^^^" "6^^^^^^" "6^1" "6^2" "6^^2" "6^1^2" "6^^3"
+  6^^: 3
+  6^^^: 2
+  6^^^^: 1
+  6^^^^^: 0
+  6^^^^^^: -1
+  6^1: 5
+  6^2: abort: unknown revision '6^2'!
+  6^^2: 4
+  6^1^2: 4
+  6^^3: abort: unknown revision '6^^3'!
+  $ lookup "6~" "6~1" "6~2" "6~3" "6~4" "6~5" "6~42" "6~1^2" "6~1^2~2"
+  6~: abort: unknown revision '6~'!
+  6~1: 5
+  6~2: 3
+  6~3: 2
+  6~4: 1
+  6~5: 0
+  6~42: -1
+  6~1^2: 4
+  6~1^2~2: 0
+  $ echo
+  
+
+with a tag "6^" pointing to rev 1
+
+  $ hg tag -l -r 1 "6^"
+  $ lookup "6^" "6^1" "6~1" "6^^"
+  6^: 1
+  6^1: 5
+  6~1: 5
+  6^^: 3
+  $ echo
+  
+
+with a tag "foo^bar" pointing to rev 2
+
+  $ hg tag -l -r 2 "foo^bar"
+  $ lookup "foo^bar" "foo^bar^"
+  foo^bar: 2
+  foo^bar^: abort: unknown revision 'foo^bar^'!