outgoing: merge the code handling --graph with the main one
The --graph code had its own copy of the logic. With the previous reorganisation
of the code, we can now merge it with the main code, reducing fragile
complication.
As a side effect, `hg out --graph` now use the right return code when they are
nothing outgoing. This explain the change to output in
`tests/test-largefiles-misc.t`.
Differential Revision: https://phab.mercurial-scm.org/D10383
--- a/mercurial/commands.py Tue Apr 13 15:13:20 2021 +0200
+++ b/mercurial/commands.py Sun Apr 11 20:00:46 2021 +0200
@@ -4972,22 +4972,6 @@
)
opts = pycompat.byteskwargs(opts)
- if opts.get(b'graph'):
- logcmdutil.checkunsupportedgraphflags([], opts)
- o, other = hg._outgoing(ui, repo, dest, opts)
- if not o:
- cmdutil.outgoinghooks(ui, repo, other, opts, o)
- return
-
- revdag = logcmdutil.graphrevs(repo, o, opts)
- ui.pager(b'outgoing')
- displayer = logcmdutil.changesetdisplayer(ui, repo, opts, buffered=True)
- logcmdutil.displaygraph(
- ui, repo, revdag, displayer, graphmod.asciiedges
- )
- cmdutil.outgoinghooks(ui, repo, other, opts, o)
- return 0
-
if opts.get(b'bookmarks'):
dest = path.pushloc or path.loc
other = hg.peer(repo, opts, dest)
--- a/mercurial/hg.py Tue Apr 13 15:13:20 2021 +0200
+++ b/mercurial/hg.py Sun Apr 11 20:00:46 2021 +0200
@@ -32,6 +32,7 @@
error,
exchange,
extensions,
+ graphmod,
httppeer,
localrepo,
lock,
@@ -1382,18 +1383,29 @@
def outgoing(ui, repo, dest, opts):
-
+ if opts.get(b'graph'):
+ logcmdutil.checkunsupportedgraphflags([], opts)
o, other = _outgoing(ui, repo, dest, opts)
ret = 1
try:
if o:
ret = 0
- ui.pager(b'outgoing')
- displayer = logcmdutil.changesetdisplayer(ui, repo, opts)
- for n in _outgoing_filter(repo, o, opts):
- displayer.show(repo[n])
- displayer.close()
+ if opts.get(b'graph'):
+ revdag = logcmdutil.graphrevs(repo, o, opts)
+ ui.pager(b'outgoing')
+ displayer = logcmdutil.changesetdisplayer(
+ ui, repo, opts, buffered=True
+ )
+ logcmdutil.displaygraph(
+ ui, repo, revdag, displayer, graphmod.asciiedges
+ )
+ else:
+ ui.pager(b'outgoing')
+ displayer = logcmdutil.changesetdisplayer(ui, repo, opts)
+ for n in _outgoing_filter(repo, o, opts):
+ displayer.show(repo[n])
+ displayer.close()
cmdutil.outgoinghooks(ui, repo, other, opts, o)
ret = min(ret, _outgoing_recurse(ui, repo, dest, opts))
return ret # exit code is zero since we found outgoing changes
--- a/tests/test-largefiles-misc.t Tue Apr 13 15:13:20 2021 +0200
+++ b/tests/test-largefiles-misc.t Sun Apr 11 20:00:46 2021 +0200
@@ -675,6 +675,7 @@
searching for changes
no changes found
largefiles: no files to upload
+ [1]
check messages when there are files to upload: