diff -r bfb826c350d4 -r b36318e6d2ef tests/test-tag.t --- a/tests/test-tag.t Tue Mar 28 05:06:56 2017 +0200 +++ b/tests/test-tag.t Tue Mar 28 06:38:09 2017 +0200 @@ -1,3 +1,19 @@ + $ cat >> $HGRCPATH << EOF + > [experimental] + > hook-track-tags=1 + > [hooks] + > txnclose.track-tag=${TESTTMP}/taghook.sh + > EOF + + $ cat << EOF > taghook.sh + > #!/bin/sh + > # escape the "$" otherwise the test runner interpret it when writting the + > # file... + > if [ -n "\$HG_TAG_MOVED" ]; then + > echo 'hook: tag changes detected' + > fi + > EOF + $ chmod +x taghook.sh $ hg init test $ cd test @@ -20,6 +36,7 @@ specified) $ HGEDITOR=cat hg tag "bleah" + hook: tag changes detected $ hg history changeset: 1:d4f0d2909abc tag: tip @@ -68,10 +85,14 @@ [255] $ hg tag -r 0 "bleah0" + hook: tag changes detected $ hg tag -l -r 1 "bleah1" $ hg tag gack gawk gorp + hook: tag changes detected $ hg tag -f gack + hook: tag changes detected $ hg tag --remove gack gorp + hook: tag changes detected $ hg tag "bleah " abort: tag 'bleah' already exists (use -f to force) @@ -83,7 +104,9 @@ abort: tag 'bleah' already exists (use -f to force) [255] $ hg tag -r 0 " bleahbleah " + hook: tag changes detected $ hg tag -r 0 " bleah bleah " + hook: tag changes detected $ cat .hgtags acb14030fe0a21b60322c440ad2d20cf7685a376 bleah @@ -112,6 +135,7 @@ abort: working directory is not at a branch head (use -f to force) [255] $ hg tag -f "foobar" + hook: tag changes detected $ cat .hgtags acb14030fe0a21b60322c440ad2d20cf7685a376 foobar $ cat .hg/localtags @@ -169,16 +193,19 @@ summary: Removed tag gack, gorp $ hg clone -q -rbleah1 test test1 + hook: tag changes detected $ hg -R test1 parents --style=compact 1[tip] d4f0d2909abc 1970-01-01 00:00 +0000 test Added tag bleah for changeset acb14030fe0a $ hg clone -q -r5 test#bleah1 test2 + hook: tag changes detected $ hg -R test2 parents --style=compact 5[tip] b4bb47aaff09 1970-01-01 00:00 +0000 test Removed tag gack, gorp $ hg clone -q -U test#bleah1 test3 + hook: tag changes detected $ hg -R test3 parents --style=compact $ cd test @@ -203,9 +230,11 @@ > f = file('.hgtags', 'w'); f.write(last); f.close() > EOF $ hg ci -m'broken manual edit of .hgtags' + hook: tag changes detected $ cat .hgtags; echo acb14030fe0a21b60322c440ad2d20cf7685a376 foobar $ hg tag newline + hook: tag changes detected $ cat .hgtags; echo acb14030fe0a21b60322c440ad2d20cf7685a376 foobar a0eea09de1eeec777b46f2085260a373b2fbc293 newline @@ -219,6 +248,7 @@ $ hg ci -m"discouraged" $ hg tag tag-and-branch-same-name warning: tag tag-and-branch-same-name conflicts with existing branch name + hook: tag changes detected test custom commit messages @@ -303,6 +333,7 @@ HG: branch 'tag-and-branch-same-name' HG: changed .hgtags ==== + hook: tag changes detected $ hg log -l1 --template "{desc}\n" custom tag message second line @@ -311,6 +342,7 @@ local tag with .hgtags modified $ hg tag hgtags-modified + hook: tag changes detected $ hg rollback repository tip rolled back to revision 13 (undo commit) working directory now based on revision 13 @@ -330,9 +362,11 @@ 0 files updated, 1 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) $ hg ci -m 'merge named branch' + hook: tag changes detected $ hg up 13 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg tag new-topo-head + hook: tag changes detected tagging on null rev @@ -399,12 +433,14 @@ > hg push "$TESTTMP/repo-tag-target" > EOF $ hg -R repo-tag --config hooks.commit="sh ../issue3344.sh" tag tag + hook: tag changes detected pushing to $TESTTMP/repo-tag-target (glob) searching for changes adding changesets adding manifests adding file changes added 2 changesets with 2 changes to 2 files + hook: tag changes detected automatically merge resolvable tag conflicts (i.e. tags that differ in rank) create two clones with some different tags as well as some common tags @@ -416,6 +452,7 @@ $ hg ci -A -m0 adding f0 $ hg tag tbase + hook: tag changes detected $ hg up -qr '.^' $ hg log -r 'wdir()' -T "{latesttagdistance}\n" 1 @@ -431,18 +468,23 @@ $ hg ci -A -m1 adding f1 $ hg tag t1 t2 t3 + hook: tag changes detected $ hg tag --remove t2 + hook: tag changes detected $ hg tag t5 + hook: tag changes detected $ echo c2 > f2 $ hg ci -A -m2 adding f2 $ hg tag -f t3 + hook: tag changes detected $ cd ../repo-automatic-tag-merge $ echo c3 > f3 $ hg ci -A -m3 adding f3 $ hg tag -f t4 t5 t6 + hook: tag changes detected $ hg up -q '.^' $ hg log -r 'wdir()' -T "{changessincelatesttag} changes since {latesttag}\n" @@ -455,6 +497,7 @@ $ hg up -qC $ hg tag --remove t5 + hook: tag changes detected $ echo c4 > f4 $ hg log -r '.' -T "{changessincelatesttag} changes since {latesttag}\n" 2 changes since t4:t6 @@ -473,7 +516,9 @@ $ hg log -r 'wdir()' -T "{changessincelatesttag} changes since {latesttag}\n" 4 changes since t4:t6 $ hg tag t2 + hook: tag changes detected $ hg tag -f t6 + hook: tag changes detected $ cd ../repo-automatic-tag-merge-clone $ hg pull @@ -483,6 +528,7 @@ adding manifests adding file changes added 6 changesets with 6 changes to 3 files (+1 heads) + hook: tag changes detected (run 'hg heads' to see heads, 'hg merge' to merge) $ hg merge --tool internal:tagmerge merging .hgtags @@ -543,10 +589,12 @@ $ hg update -C -r tip 3 files updated, 0 files merged, 2 files removed, 0 files unresolved $ hg tag t7 + hook: tag changes detected $ hg update -C -r 'first(sort(head()))' 3 files updated, 0 files merged, 2 files removed, 0 files unresolved $ printf "%s %s\n" `hg log -r . --template "{node} t7"` >> .hgtags $ hg commit -m "manually add conflicting t7 tag" + hook: tag changes detected $ hg merge --tool internal:tagmerge merging .hgtags automatic .hgtags merge failed @@ -581,11 +629,13 @@ $ hg ci -A -m5 adding f5 $ hg tag -f t7 + hook: tag changes detected $ hg update -r 'p1(t7)' 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ printf '' > .hgtags $ hg commit -m 'delete all tags' created new head + hook: tag changes detected $ hg log -r 'max(t7::)' changeset: 17:ffe462b50880 user: test