merge bookmarks

This commit is contained in:
Benoit Boissinot 2008-12-31 15:04:18 +01:00
commit e2908a6b20
3 changed files with 62 additions and 1 deletions

View File

@ -64,9 +64,9 @@ def write(repo, refs):
'''
if os.path.exists(repo.join('bookmarks')):
util.copyfile(repo.join('bookmarks'), repo.join('undo.bookmarks'))
file = repo.opener('bookmarks', 'w+')
if current(repo) not in refs:
setcurrent(repo, None)
file = repo.opener('bookmarks', 'w+')
for refspec, node in refs.items():
file.write("%s %s\n" % (hex(node), refspec))
file.close()
@ -138,6 +138,8 @@ def bookmark(ui, repo, mark=None, rev=None, force=False, delete=False, rename=No
raise util.Abort(_("new bookmark name required"))
marks[mark] = marks[rename]
del marks[rename]
if current(repo) == rename:
setcurrent(repo, mark)
write(repo, marks)
return

41
tests/test-bookmarks-current Executable file
View File

@ -0,0 +1,41 @@
#!/bin/sh
echo "[extensions]" >> $HGRCPATH
echo "bookmarks=" >> $HGRCPATH
echo "[bookmarks]" >> $HGRCPATH
echo "track.current = True" >> $HGRCPATH
hg init
echo % no bookmarks
hg bookmarks
echo % set bookmark X
hg bookmark X
echo % update to bookmark X
hg update X
echo % list bookmarks
hg bookmarks
echo % rename
hg bookmark -m X Z
echo % list bookmarks
hg bookmarks
echo % new bookmark Y
hg bookmark Y
echo % list bookmarks
hg bookmark
echo % commit
echo 'b' > b
hg add b
hg commit -m'test'
echo % list bookmarks
hg bookmark

View File

@ -0,0 +1,18 @@
% no bookmarks
no bookmarks set
% set bookmark X
% update to bookmark X
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
% list bookmarks
* X -1:000000000000
% rename
% list bookmarks
* Z -1:000000000000
% new bookmark Y
% list bookmarks
Y -1:000000000000
* Z -1:000000000000
% commit
% list bookmarks
Y -1:000000000000
* Z 0:719295282060