[PATCH 06 of 12 V3] bookmarks: add "incoming()" to replace "diff()" for incoming bookmarks

FUJIWARA Katsunori foozy at lares.dti.ne.jp
Wed Oct 2 09:38:43 CDT 2013


# HG changeset patch
# User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
# Date 1380723659 -32400
#      Wed Oct 02 23:20:59 2013 +0900
# Node ID fed0b68751f092a8cd9e0c757f3400a7c5ad9e38
# Parent  0f9bfa66f2ddb9a019619d48bd5237d8c8a9ac0a
bookmarks: add "incoming()" to replace "diff()" for incoming bookmarks

This patch adds "incoming()", which uses "compare()" to compare
bookmarks between the local and the remote repositories, to replace
"diff()" for incoming bookmarks newly from the remote repository.

diff --git a/mercurial/bookmarks.py b/mercurial/bookmarks.py
--- a/mercurial/bookmarks.py
+++ b/mercurial/bookmarks.py
@@ -411,6 +411,28 @@
     if failed:
         return 1
 
+def incoming(ui, repo, other):
+    ui.status(_("searching for changed bookmarks\n"))
+    (addsrc, adddst, advsrc, advdst, diverge, differ, invalid
+     ) = compare(repo, other.listkeys('bookmarks'), repo._bookmarks,
+                 dsthex=hex)
+
+    incomings = []
+    def add(b, id):
+        incomings.append("   %-25s %s\n" %
+                         (b, ui.debugflag and id or id[:12]))
+    for b, scid, dcid in addsrc:
+        add(b, scid)
+
+    if not incomings:
+        ui.status(_("no changed bookmarks found\n"))
+        return 1
+
+    for s in sorted(incomings):
+        ui.write(s)
+
+    return 0
+
 def diff(ui, dst, src):
     ui.status(_("searching for changed bookmarks\n"))
 
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -3867,7 +3867,7 @@
             ui.warn(_("remote doesn't support bookmarks\n"))
             return 0
         ui.status(_('comparing with %s\n') % util.hidepassword(source))
-        return bookmarks.diff(ui, repo, other)
+        return bookmarks.incoming(ui, repo, other)
 
     repo._subtoppath = ui.expandpath(source)
     try:


More information about the Mercurial-devel mailing list