Mercurial > hg
view tests/test-tag.t @ 11988:8380ed691df8
util: add an interpolate() function to for replacing multiple values
util.interpolate can be used to replace multiple items in a string all at once
(and optionally apply a function to the replacement), without worrying about
recursing:
>>> import util
>>> s = '$foo, $spam'
>>> util.interpolate(r'\$', { 'foo': 'bar', 'spam': 'eggs' }, s)
'bar, eggs'
>>> util.interpolate(r'\$', { 'foo': 'spam', 'spam': 'foo' }, s)
'spam, foo'
>>> util.interpolate(r'\$', { 'foo': 'spam', 'spam': 'foo' }, s, lambda s: s.upper())
'SPAM, FOO'
The patch also changes filemerge.py to use this new function.
author | Steve Losh <steve@stevelosh.com> |
---|---|
date | Wed, 18 Aug 2010 18:18:26 -0400 |
parents | b3de1438028d |
children | 4c94b6d0fb1c |
line wrap: on
line source
$ 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