bookmarks: add outgoing() to replace diff() for outgoing bookmarks

This replacement makes enhancement of "show outgoing bookmarks" easy,
because "compare()" can detect more detailed difference of bookmarks
between two repositories.
This commit is contained in:
FUJIWARA Katsunori 2015-03-19 23:36:05 +09:00
parent db0c9bd871
commit eefef22b72
2 changed files with 29 additions and 1 deletions

View File

@ -470,6 +470,34 @@ def incoming(ui, repo, other):
return 0
def outgoing(ui, repo, other):
'''Show bookmarks outgoing from repo to other
'''
ui.status(_("searching for changed bookmarks\n"))
r = compare(repo, repo._bookmarks, other.listkeys('bookmarks'),
srchex=hex)
addsrc, adddst, advsrc, advdst, diverge, differ, invalid, same = r
outgoings = []
if ui.debugflag:
getid = lambda id: id
else:
getid = lambda id: id[:12]
def add(b, id):
outgoings.append(" %-25s %s\n" % (b, getid(id)))
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"))

View File

@ -4757,7 +4757,7 @@ def outgoing(ui, repo, dest=None, **opts):
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: