Comments
Patch
@@ -498,6 +498,16 @@ def outgoing(ui, repo, other):
return 0
+def summary(repo, other):
+ '''Compare bookmarks between repo and other for "hg summary" output
+
+ This returns "(# of incoming, # of outgoing)" tuple.
+ '''
+ r = compare(repo, other.listkeys('bookmarks'), repo._bookmarks,
+ dsthex=hex)
+ addsrc, adddst, advsrc, advdst, diverge, differ, invalid, same = r
+ return (len(addsrc), len(adddst))
+
def validdest(repo, old, new):
"""Is the new bookmark destination a valid update from the old one"""
repo = repo.unfiltered()
@@ -5982,14 +5982,11 @@ def summary(ui, repo, **opts):
t.append(_('%d outgoing') % len(o))
other = dother or sother
if 'bookmarks' in other.listkeys('namespaces'):
- lmarks = repo.listkeys('bookmarks')
- rmarks = other.listkeys('bookmarks')
- diff = set(rmarks) - set(lmarks)
- if len(diff) > 0:
- t.append(_('%d incoming bookmarks') % len(diff))
- diff = set(lmarks) - set(rmarks)
- if len(diff) > 0:
- t.append(_('%d outgoing bookmarks') % len(diff))
+ counts = bookmarks.summary(repo, other)
+ if counts[0] > 0:
+ t.append(_('%d incoming bookmarks') % counts[0])
+ if counts[1] > 0:
+ t.append(_('%d outgoing bookmarks') % counts[1])
if t:
# i18n: column positioning for "hg summary"
@@ -494,6 +494,13 @@ pushing a new bookmark on a new head doe
$ hg -R ../b id -r W
cc978a373a53 tip W
+Check summary output for incoming/outgoing bookmarks
+
+ $ hg bookmarks -d X
+ $ hg bookmarks -d Y
+ $ hg summary --remote | grep '^remote:'
+ remote: *, 2 incoming bookmarks, 1 outgoing bookmarks (glob)
+
$ cd ..
pushing an unchanged bookmark should result in no changes