util: improved the check for the existence of the 'buffer' builtin
2to3 is unable to translate '__builtin__' calls to 'builtins' when
hasattr is used (as in hasattr(__builtin__, buffer)). Translating the
check to the format
try:
whatever
except NameError
# define whatever
__builtin__.whatever = whatever
is a correct way of checking for the name and has the benefit of being
translated by 2to3. This patch implements the same idea for the
aforementioned example.
#!/bin/sh
echo "[extensions]" >> $HGRCPATH
echo "bookmarks=" >> $HGRCPATH
hg init
echo % no bookmarks
hg bookmarks
echo % bookmark rev -1
hg bookmark X
echo % list bookmarks
hg bookmarks
echo % list bookmarks with color
hg --config extensions.color= --config color.mode=ansi \
bookmarks --color=always
echo a > a
hg add a
hg commit -m 0
echo % bookmark X moved to rev 0
hg bookmarks
echo % look up bookmark
hg log -r X
echo % second bookmark for rev 0
hg bookmark X2
echo % bookmark rev -1 again
hg bookmark -r null Y
echo % list bookmarks
hg bookmarks
echo b > b
hg add b
hg commit -m 1
echo % bookmarks X and X2 moved to rev 1, Y at rev -1
hg bookmarks
echo % bookmark rev 0 again
hg bookmark -r 0 Z
echo c > c
hg add c
hg commit -m 2
echo % bookmarks X and X2 moved to rev 2, Y at rev -1, Z at rev 0
hg bookmarks
echo % rename nonexistent bookmark
hg bookmark -m A B
echo % rename to existent bookmark
hg bookmark -m X Y
echo % force rename to existent bookmark
hg bookmark -f -m X Y
echo % list bookmarks
hg bookmark
echo % rename without new name
hg bookmark -m Y
echo % delete without name
hg bookmark -d
echo % delete nonexistent bookmark
hg bookmark -d A
echo % bookmark name with spaces should be stripped
hg bookmark ' x y '
echo % list bookmarks
hg bookmarks
echo % look up stripped bookmark name
hg log -r '"x y"'
echo % reject bookmark name with newline
hg bookmark '
'
echo % bookmark with existing name
hg bookmark Z
echo % force bookmark with existing name
hg bookmark -f Z
echo % list bookmarks
hg bookmark
echo % revision but no bookmark name
hg bookmark -r .
true