merge bookmarks
authorBenoit Boissinot <benoit.boissinot@ens-lyon.org>
Wed, 31 Dec 2008 15:04:18 +0100
changeset 7552 a9221c7f51a4
parent 7549 013a2baf8f85 (current diff)
parent 7551 cab1cf26ca58 (diff)
child 7557 21233de9c053
merge bookmarks
hgext/bookmarks.py
--- 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