$ hg init test $ cd test $ echo a > a $ hg add a $ hg commit -m "test" -d "1000000 0" $ hg history changeset: 0:0acdaf898367 tag: tip user: test date: Mon Jan 12 13:46:40 1970 +0000 summary: test $ hg tag ' ' abort: tag names cannot consist entirely of whitespace $ hg tag -d "1000000 0" "bleah" $ hg history changeset: 1:3ecf002a1c57 tag: tip user: test date: Mon Jan 12 13:46:40 1970 +0000 summary: Added tag bleah for changeset 0acdaf898367 changeset: 0:0acdaf898367 tag: bleah user: test date: Mon Jan 12 13:46:40 1970 +0000 summary: test $ echo foo >> .hgtags $ hg tag -d "1000000 0" "bleah2" || echo "failed" abort: working copy of .hgtags is changed (please commit .hgtags manually) failed $ hg revert .hgtags $ hg tag -d "1000000 0" -r 0 x y z y y z || echo "failed" abort: tag names must be unique failed $ hg tag -d "1000000 0" tap nada dot tip null . || echo "failed" abort: the name 'tip' is reserved failed $ hg tag -d "1000000 0" "bleah" || echo "failed" abort: tag 'bleah' already exists (use -f to force) failed $ hg tag -d "1000000 0" "blecch" "bleah" || echo "failed" abort: tag 'bleah' already exists (use -f to force) failed $ hg tag -d "1000000 0" --remove "blecch" || echo "failed" abort: tag 'blecch' does not exist failed $ hg tag -d "1000000 0" --remove "bleah" "blecch" "blough" || echo "failed" abort: tag 'blecch' does not exist failed $ hg tag -d "1000000 0" -r 0 "bleah0" $ hg tag -l -d "1000000 0" -r 1 "bleah1" $ hg tag -d "1000000 0" gack gawk gorp $ hg tag -d "1000000 0" -f gack $ hg tag -d "1000000 0" --remove gack gorp $ cat .hgtags 0acdaf8983679e0aac16e811534eb49d7ee1f2b4 bleah 0acdaf8983679e0aac16e811534eb49d7ee1f2b4 bleah0 868cc8fbb43b754ad09fa109885d243fc49adae7 gack 868cc8fbb43b754ad09fa109885d243fc49adae7 gawk 868cc8fbb43b754ad09fa109885d243fc49adae7 gorp 868cc8fbb43b754ad09fa109885d243fc49adae7 gack 3807bcf62c5614cb6c16436b514d7764ca5f1631 gack 3807bcf62c5614cb6c16436b514d7764ca5f1631 gack 0000000000000000000000000000000000000000 gack 868cc8fbb43b754ad09fa109885d243fc49adae7 gorp 0000000000000000000000000000000000000000 gorp $ cat .hg/localtags 3ecf002a1c572a2f3bb4e665417e60fca65bbd42 bleah1 $ hg update 0 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg tag -d "1000000 0" "foobar" $ cat .hgtags 0acdaf8983679e0aac16e811534eb49d7ee1f2b4 foobar $ cat .hg/localtags 3ecf002a1c572a2f3bb4e665417e60fca65bbd42 bleah1 $ hg tag -l 'xx > newline' abort: '\n' cannot be used in a tag name $ hg tag -l 'xx:xx' abort: ':' cannot be used in a tag name cloning local tags $ cd .. $ hg -R test log -r0:5 changeset: 0:0acdaf898367 tag: bleah tag: bleah0 tag: foobar user: test date: Mon Jan 12 13:46:40 1970 +0000 summary: test changeset: 1:3ecf002a1c57 tag: bleah1 user: test date: Mon Jan 12 13:46:40 1970 +0000 summary: Added tag bleah for changeset 0acdaf898367 changeset: 2:868cc8fbb43b tag: gawk user: test date: Mon Jan 12 13:46:40 1970 +0000 summary: Added tag bleah0 for changeset 0acdaf898367 changeset: 3:3807bcf62c56 user: test date: Mon Jan 12 13:46:40 1970 +0000 summary: Added tag gack, gawk, gorp for changeset 868cc8fbb43b changeset: 4:140c6e8597b4 user: test date: Mon Jan 12 13:46:40 1970 +0000 summary: Added tag gack for changeset 3807bcf62c56 changeset: 5:470a65fa7cc9 user: test date: Mon Jan 12 13:46:40 1970 +0000 summary: Removed tag gack, gorp $ hg clone -q -rbleah1 test test1 $ hg -R test1 parents --style=compact 1[tip] 3ecf002a1c57 1970-01-12 13:46 +0000 test Added tag bleah for changeset 0acdaf898367 $ hg clone -q -r5 test#bleah1 test2 $ hg -R test2 parents --style=compact 5[tip] 470a65fa7cc9 1970-01-12 13:46 +0000 test Removed tag gack, gorp $ hg clone -q -U test#bleah1 test3 $ hg -R test3 parents --style=compact $ cd test issue 601 $ python << EOF > f = file('.hg/localtags'); last = f.readlines()[-1][:-1]; f.close() > f = file('.hg/localtags', 'w'); f.write(last); f.close() > EOF $ cat .hg/localtags; echo 3ecf002a1c572a2f3bb4e665417e60fca65bbd42 bleah1 $ hg tag -l localnewline $ cat .hg/localtags; echo 3ecf002a1c572a2f3bb4e665417e60fca65bbd42 bleah1 f68b039e72eacbb2e68b0543e1f6e50990aa2bb5 localnewline $ python << EOF > f = file('.hgtags'); last = f.readlines()[-1][:-1]; f.close() > f = file('.hgtags', 'w'); f.write(last); f.close() > EOF $ hg ci -d '1000000 0' -m'broken manual edit of .hgtags' $ cat .hgtags; echo 0acdaf8983679e0aac16e811534eb49d7ee1f2b4 foobar $ hg tag -d '1000000 0' newline $ cat .hgtags; echo 0acdaf8983679e0aac16e811534eb49d7ee1f2b4 foobar 6ae703d793c8b1f097116869275ecd97b2977a2b newline tag and branch using same name $ hg branch tag-and-branch-same-name marked working directory as branch tag-and-branch-same-name $ hg ci -m"discouraged" $ hg tag tag-and-branch-same-name warning: tag tag-and-branch-same-name conflicts with existing branch name test custom commit messages $ cat > $HGTMP/editor <<'__EOF__' > #!/bin/sh > echo "custom tag message" > "$1" > echo "second line" >> "$1" > __EOF__ $ chmod +x "$HGTMP"/editor $ HGEDITOR="'$HGTMP'"/editor hg tag custom-tag -e $ hg log -l1 --template "{desc}\n" custom tag message second line