[PATCH WIP] bookmarks: add 'hg pull -B .' for pulling the active bookmark (issue5258)

liscju piotr.listkiewicz at gmail.com
Wed Jun 1 21:17:13 UTC 2016


# HG changeset patch
# User liscju <piotr.listkiewicz at gmail.com>
# Date 1464814737 -7200
#      Wed Jun 01 22:58:57 2016 +0200
# Node ID 2d981ec525ca5c9a85143cbbd9aa1c8951e1d88c
# Parent  48b38b16a8f83ea98ebdf0b370f59fd90dc17935
bookmarks: add 'hg pull -B .' for pulling the active bookmark (issue5258)

This solution lacks proper error handling when no bookmark is active.
It currently aborts in this situation with error:
abort: remote bookmark . not found!

This situation is similiar to pushing with 'push -B .' where message is:
bookmark None does not exist on the local or remote repository!

Should those situations be handled in commands.py while extracting
parameters to push/pull or in bmstore.expandname?

diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -5805,6 +5805,7 @@ def pull(ui, repo, source="default", **o
             remotebookmarks = other.listkeys('bookmarks')
             pullopargs['remotebookmarks'] = remotebookmarks
             for b in opts['bookmark']:
+                b = repo._bookmarks.expandname(b)
                 if b not in remotebookmarks:
                     raise error.Abort(_('remote bookmark %s not found!') % b)
                 revs.append(remotebookmarks[b])
diff --git a/tests/test-bookmarks-pushpull.t b/tests/test-bookmarks-pushpull.t
--- a/tests/test-bookmarks-pushpull.t
+++ b/tests/test-bookmarks-pushpull.t
@@ -353,7 +353,10 @@ Update a bookmark right after the initia
      X                         1:0d2164f0ce0d
    * Y                         5:35d1ef0a8d1b
      Z                         1:0d2164f0ce0d
-  $ hg pull -B Y
+  $ hg update -r Y
+  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  (activating bookmark Y)
+  $ hg pull -B .
   pulling from http://localhost:$HGPORT/
   searching for changes
   adding changesets
@@ -363,9 +366,9 @@ Update a bookmark right after the initia
   updating bookmark Y
   (run 'hg update' to get a working copy)
   $ hg book
-   * @                         1:0d2164f0ce0d
+     @                         1:0d2164f0ce0d
      X                         1:0d2164f0ce0d
-     Y                         5:35d1ef0a8d1b
+   * Y                         5:35d1ef0a8d1b
      Z                         1:0d2164f0ce0d
 
 (done with this section of the test)


More information about the Mercurial-devel mailing list