[PATCH 07 of 15 V5] bookmarks: add "outgoing()" to replace "diff()" for outgoing bookmarks

FUJIWARA Katsunori foozy at lares.dti.ne.jp
Thu Nov 7 21:54:17 CST 2013


# HG changeset patch
# User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
# Date 1383882352 -32400
#      Fri Nov 08 12:45:52 2013 +0900
# Node ID 8bc0de4c70adb242bbba61775af91f779860e31b
# Parent  e8108ef8c091b318da07653f27b91ba1fea7ed54
bookmarks: add "outgoing()" to replace "diff()" for outgoing bookmarks

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

diff --git a/mercurial/bookmarks.py b/mercurial/bookmarks.py
--- a/mercurial/bookmarks.py
+++ b/mercurial/bookmarks.py
@@ -432,6 +432,29 @@
 
     return 0
 
+def outgoing(ui, repo, other):
+    ui.status(_("searching for changed bookmarks\n"))
+
+    (addsrc, adddst, advsrc, advdst, diverge, differ, invalid
+     ) = compare(repo, repo._bookmarks, other.listkeys('bookmarks'),
+                 srchex=hex)
+
+    outgoings = []
+    def add(b, id):
+        outgoings.append("   %-25s %s\n" %
+                         (b, ui.debugflag and id or id[:12]))
+    for b, scid, dcid in addsrc:
+        add(b, scid)
+
+    if not outgoings:
+        ui.status(_("no changed bookmarks found\n"))
+        return 1
+
+    for s in sorted(outgoings):
+        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
@@ -4338,7 +4338,7 @@
             ui.warn(_("remote doesn't support bookmarks\n"))
             return 0
         ui.status(_('comparing with %s\n') % util.hidepassword(dest))
-        return bookmarks.diff(ui, other, repo)
+        return bookmarks.outgoing(ui, repo, other)
 
     repo._subtoppath = ui.expandpath(dest or 'default-push', dest or 'default')
     try:


More information about the Mercurial-devel mailing list