tests/test-tags
changeset 9143 a604c98dbf62
parent 5658 ae3089cefaab
child 9144 ad72e3b08bc0
--- a/tests/test-tags	Wed Jul 15 17:44:47 2009 +0200
+++ b/tests/test-tags	Thu Jul 16 10:39:41 2009 -0400
@@ -1,24 +1,31 @@
 #!/bin/sh
 
+echo "% setup"
 mkdir t
 cd t
 hg init
 hg id
 echo a > a
 hg add a
-hg commit -m "test" -d "1000000 0"
+hg commit -m "test"
 hg co
 hg identify
-T=`hg tip --debug | head -n 1 | cut -d : -f 3`
+
+echo "% create local tag with long name"
+T=`hg identify --debug --id`
 hg tag -l "This is a local tag with a really long name!"
 hg tags
 rm .hg/localtags
+
+echo "% create a tag behind hg's back"
 echo "$T first" > .hgtags
 cat .hgtags
 hg add .hgtags
-hg commit -m "add tags" -d "1000000 0"
+hg commit -m "add tags"
 hg tags
 hg identify
+
+echo "% create a branch"
 echo bb > a
 hg status
 hg identify
@@ -28,89 +35,94 @@
 hg status
 echo 1 > b
 hg add b
-hg commit -m "branch" -d "1000000 0"
+hg commit -m "branch"
 hg id
+
+echo "% merge the two heads"
 hg merge 1
 hg id
 hg status
 
-hg commit -m "merge" -d "1000000 0"
+hg commit -m "merge"
 
-# create fake head, make sure tag not visible afterwards
+echo "% create fake head, make sure tag not visible afterwards"
 cp .hgtags tags
-hg tag -d "1000000 0" last
+hg tag last
 hg rm .hgtags
-hg commit -m "remove" -d "1000000 0"
+hg commit -m "remove"
 
 mv tags .hgtags
 hg add .hgtags
-hg commit -m "readd" -d "1000000 0"
+hg commit -m "readd"
 
 hg tags
 
-# invalid tags
+echo "% add invalid tags"
 echo "spam" >> .hgtags
 echo >> .hgtags
 echo "foo bar" >> .hgtags
 echo "$T invalid" | sed "s/..../a5a5/" >> .hg/localtags
-hg commit -m "tags" -d "1000000 0"
+echo "committing .hgtags:"
+cat .hgtags 
+hg commit -m "tags"
 
-# report tag parse error on other head
+echo "% report tag parse error on other head"
 hg up 3
 echo 'x y' >> .hgtags
-hg commit -m "head" -d "1000000 0"
+hg commit -m "head"
 
 hg tags
 hg tip
 
-# test tag precedence rules
+echo "% test tag precedence rules"
 cd ..
 hg init t2
 cd t2
 echo foo > foo
 hg add foo
-hg ci -m 'add foo' -d '1000000 0'      # rev 0
-hg tag -d '1000000 0' bar              # rev 1
+hg ci -m 'add foo'      # rev 0
+hg tag bar              # rev 1
 echo >> foo
-hg ci -m 'change foo 1' -d '1000000 0' # rev 2
+hg ci -m 'change foo 1' # rev 2
 hg up -C 1
-hg tag -r 1 -d '1000000 0' -f bar      # rev 3
+hg tag -r 1 -f bar      # rev 3
 hg up -C 1
 echo >> foo
-hg ci -m 'change foo 2' -d '1000000 0' # rev 4
+hg ci -m 'change foo 2' # rev 4
 hg tags
 
-# test tag removal
-hg tag --remove -d '1000000 0' bar
-hg tip
+echo "% test tag removal"
+hg tag --remove bar     # rev 5
+hg tip -vp
 hg tags
 
 echo '% remove nonexistent tag'
-hg tag --remove -d '1000000 0' foobar
+hg tag --remove foobar
 hg tip
 
-# test tag rank
+echo "% test tag rank"
 cd ..
 hg init t3
 cd t3
 echo foo > foo
 hg add foo
-hg ci -m 'add foo' -d '1000000 0'       # rev 0
-hg tag -d '1000000 0' -f bar            # rev 1 bar -> 0
-hg tag -d '1000000 0' -f bar            # rev 2 bar -> 1
-hg tag -d '1000000 0' -fr 0 bar         # rev 3 bar -> 0
-hg tag -d '1000000 0' -fr 1 bar         # rev 3 bar -> 1
-hg tag -d '1000000 0' -fr 0 bar         # rev 4 bar -> 0
+hg ci -m 'add foo'       # rev 0
+hg tag -f bar            # rev 1 bar -> 0
+hg tag -f bar            # rev 2 bar -> 1
+hg tag -fr 0 bar         # rev 3 bar -> 0
+hg tag -fr 1 bar         # rev 4 bar -> 1
+hg tag -fr 0 bar         # rev 5 bar -> 0
 hg tags
 hg co 3
 echo barbar > foo
-hg ci -m 'change foo' -d '1000000 0'    # rev 0
+hg ci -m 'change foo'    # rev 6
 hg tags
 
-hg tag -d '1000000 0' -r 3 bar         # should complain
+echo "% don't allow moving tag without -f"
+hg tag -r 3 bar
 hg tags
 
-# test tag rank with 3 heads
+echo "% test tag rank with 3 heads"
 cd ..
 hg init t4
 cd t4
@@ -124,10 +136,11 @@
 hg tags
 hg up -qC 0
 hg tag -m 'retag rev 0' -fr 0 bar  # rev 4 bar -> 0, but bar stays at 2
-echo % bar should still point to rev 2
+echo "% bar should still point to rev 2"
 hg tags
 
 
+echo "% remove local as global and global as local"
 # test that removing global/local tags does not get confused when trying
 # to remove a tag of type X which actually only exists as a type Y
 cd ..