[PATCH] bookmarks: mark new bookmark as current if it points to the current dirstate

David Soria Parra dsp at php.net
Sat Feb 19 17:58:14 CST 2011


# HG changeset patch
# User David Soria Parra <dsp at php.net>
# Date 1298159875 -3600
# Node ID 5e790297d8ff816bcef5060a37e2d9832a85fa5f
# Parent  643b8212813e631b5525049fc4321a34a4def105
bookmarks: mark new bookmark as current if it points to the current dirstate

hg bookmark -r ancestorrev X will not mark X as the current bookmark anymore.
If you want to point a bookmark to a ancestor rev you will use hg update to
move to it. This will set the current bookmark.

diff -r 643b8212813e -r 5e790297d8ff mercurial/commands.py
--- a/mercurial/commands.py	Wed Feb 16 15:02:30 2011 +0100
+++ b/mercurial/commands.py	Sun Feb 20 00:57:55 2011 +0100
@@ -521,7 +521,8 @@
             marks[mark] = repo.lookup(rev)
         else:
             marks[mark] = repo.changectx('.').node()
-        bookmarks.setcurrent(repo, mark)
+        if repo.changectx('.').node() == marks[mark]:
+            bookmarks.setcurrent(repo, mark)
         bookmarks.write(repo)
         return
 
diff -r 643b8212813e -r 5e790297d8ff tests/test-bookmarks.t
--- a/tests/test-bookmarks.t	Wed Feb 16 15:02:30 2011 +0100
+++ b/tests/test-bookmarks.t	Sun Feb 20 00:57:55 2011 +0100
@@ -55,7 +55,7 @@
 
   $ hg bookmarks
      X                         0:f7b1eb17ad24
-     X2                        0:f7b1eb17ad24
+   * X2                        0:f7b1eb17ad24
      Y                         -1:000000000000
 
   $ echo b > b
@@ -67,19 +67,25 @@
   $ hg log -r 'bookmark()'
   changeset:   0:f7b1eb17ad24
   bookmark:    X
-  bookmark:    X2
   user:        test
   date:        Thu Jan 01 00:00:00 1970 +0000
   summary:     0
   
+  changeset:   1:925d80f479bb
+  bookmark:    X2
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     1
+  
   $ hg log -r 'bookmark(Y)'
   $ hg log -r 'bookmark(X2)'
-  changeset:   0:f7b1eb17ad24
-  bookmark:    X
+  changeset:   1:925d80f479bb
   bookmark:    X2
+  tag:         tip
   user:        test
   date:        Thu Jan 01 00:00:00 1970 +0000
-  summary:     0
+  summary:     1
   
   $ hg help revsets | grep 'bookmark('
       "bookmark([name])"
@@ -88,7 +94,7 @@
 
   $ hg bookmarks
      X                         0:f7b1eb17ad24
-     X2                        0:f7b1eb17ad24
+   * X2                        1:925d80f479bb
      Y                         -1:000000000000
 
 bookmark rev 0 again
@@ -106,7 +112,7 @@
 
   $ hg bookmarks
    * X                         2:db815d6d32e6
-     X2                        0:f7b1eb17ad24
+     X2                        1:925d80f479bb
      Y                         -1:000000000000
      Z                         0:f7b1eb17ad24
 
@@ -129,7 +135,7 @@
 list bookmarks
 
   $ hg bookmark
-     X2                        0:f7b1eb17ad24
+     X2                        1:925d80f479bb
    * Y                         2:db815d6d32e6
      Z                         0:f7b1eb17ad24
 
@@ -158,7 +164,7 @@
 list bookmarks
 
   $ hg bookmarks
-     X2                        0:f7b1eb17ad24
+     X2                        1:925d80f479bb
      Y                         2:db815d6d32e6
      Z                         0:f7b1eb17ad24
    * x  y                      2:db815d6d32e6
@@ -196,7 +202,7 @@
 list bookmarks
 
   $ hg bookmark
-     X2                        0:f7b1eb17ad24
+     X2                        1:925d80f479bb
      Y                         2:db815d6d32e6
    * Z                         2:db815d6d32e6
      x  y                      2:db815d6d32e6


More information about the Mercurial-devel mailing list