D2808: remotenames: show remote bookmarks in `hg bookmarks`
pulkit (Pulkit Goyal)
phabricator at mercurial-scm.org
Mon Mar 12 13:45:34 UTC 2018
pulkit created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
This patch adds functionality to show list of remote bookmarks in `hg bookmarks`
command.
There is some indenting problem in the test output as the current bookmark
printing code in core can handle bookmark names of size 25 only gracefully.
The idea is taken from hgremotenames extension which has --remote and --all
flags to show remote bookmarks. However, this patch by defaults support showing
list of remote bookmarks if remotenames extension is enabled and remotebookmarks
are turned on.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D2808
AFFECTED FILES
hgext/remotenames.py
tests/test-logexchange.t
CHANGE DETAILS
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
@@ -34,6 +34,8 @@
bin,
)
from mercurial import (
+ bookmarks,
+ extensions,
logexchange,
namespaces,
registrar,
@@ -222,6 +224,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
To: pulkit, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list