--- a/hgext/bookmarks.py Wed Dec 31 14:23:19 2008 +0100
+++ b/hgext/bookmarks.py Wed Dec 31 15:04:18 2008 +0100
@@ -64,9 +64,9 @@
'''
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 @@
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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-bookmarks-current Wed Dec 31 15:04:18 2008 +0100
@@ -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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-bookmarks-current.out Wed Dec 31 15:04:18 2008 +0100
@@ -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