Patchwork D2808: remotenames: show remote bookmarks in `hg bookmarks`

login
register
mail settings
Submitter phabricator
Date March 22, 2018, 7:35 a.m.
Message ID <07ccd6ee809addd51a9a68798b2d8569@localhost.localdomain>
Download mbox | patch
Permalink /patch/29774/
State Not Applicable
Headers show

Comments

phabricator - March 22, 2018, 7:35 a.m.
pulkit updated this revision to Diff 7248.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D2808?vs=7102&id=7248

REVISION DETAIL
  https://phab.mercurial-scm.org/D2808

AFFECTED FILES
  hgext/remotenames.py
  tests/test-logexchange.t

CHANGE DETAILS




To: pulkit, #hg-reviewers, durin42
Cc: durin42, mercurial-devel

Patch

diff --git a/tests/test-logexchange.t b/tests/test-logexchange.t
--- a/tests/test-logexchange.t
+++ b/tests/test-logexchange.t
@@ -327,3 +327,9 @@ 
   date:        Thu Jan 01 00:00:00 1970 +0000
   summary:     added bar
   
+  $ hg bookmarks
+     $TESTTMP/server2/bar 6:87d6d6676308
+     $TESTTMP/server2/foo 3:62615734edd5
+     default/bar               6:87d6d6676308
+     default/foo               3:62615734edd5
+   * foo                       8:3e1487808078
diff --git a/hgext/remotenames.py b/hgext/remotenames.py
--- a/hgext/remotenames.py
+++ b/hgext/remotenames.py
@@ -32,6 +32,8 @@ 
     bin,
 )
 from mercurial import (
+    bookmarks,
+    extensions,
     logexchange,
     namespaces,
     pycompat,
@@ -228,6 +230,24 @@ 
                     self._nodetohoists.setdefault(node[0], []).append(name)
         return self._nodetohoists
 
+def wrapprintbookmarks(orig, ui, repo, bmarks, **opts):
+    if 'remotebookmarks' not in repo.names:
+        return
+    ns = repo.names['remotebookmarks']
+
+    for name in ns.listnames(repo):
+        nodes = ns.nodes(repo, name)
+        if not nodes:
+            continue
+        node = nodes[0]
+
+        bmarks[name] = (node, ' ', '')
+
+    return orig(ui, repo, bmarks, **opts)
+
+def extsetup(ui):
+    extensions.wrapfunction(bookmarks, '_printbookmarks', wrapprintbookmarks)
+
 def reposetup(ui, repo):
     if not repo.local():
         return