Patchwork [06,of,15,V5] bookmarks: add "incoming()" to replace "diff()" for incoming bookmarks

login
register
mail settings
Submitter Katsunori FUJIWARA
Date Nov. 8, 2013, 3:54 a.m.
Message ID <e8108ef8c091b318da07.1383882856@juju>
Download mbox | patch
Permalink /patch/2876/
State Superseded
Headers show

Comments

Katsunori FUJIWARA - Nov. 8, 2013, 3:54 a.m.
# HG changeset patch
# User FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
# Date 1383882352 -32400
#      Fri Nov 08 12:45:52 2013 +0900
# Node ID e8108ef8c091b318da07653f27b91ba1fea7ed54
# Parent  d089a7cf094309bde506b7651f3c8f29343ca02d
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.

Patch

diff --git a/mercurial/bookmarks.py b/mercurial/bookmarks.py
--- a/mercurial/bookmarks.py
+++ b/mercurial/bookmarks.py
@@ -410,6 +410,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
@@ -3868,7 +3868,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: