outgoing: remove some early return
Since
066b8d8f75b8, the push command accept multiple destination. However `hg
outgoing` does not. On the way to fix this, we need to clean up the outgoing
code. We start with removing some early return to make the code ready to house
more changes.
Differential Revision: https://phab.mercurial-scm.org/D10380
--- a/mercurial/hg.py Sat Apr 10 21:55:01 2021 +0200
+++ b/mercurial/hg.py Sun Apr 11 19:20:14 2021 +0200
@@ -1360,28 +1360,28 @@
limit = logcmdutil.getlimit(opts)
o, other = _outgoing(ui, repo, dest, opts)
+ ret = 1
try:
- if not o:
- cmdutil.outgoinghooks(ui, repo, other, opts, o)
- return recurse()
+ if o:
+ ret = 0
- if opts.get(b'newest_first'):
- o.reverse()
- ui.pager(b'outgoing')
- displayer = logcmdutil.changesetdisplayer(ui, repo, opts)
- count = 0
- for n in o:
- if limit is not None and count >= limit:
- break
- parents = [p for p in repo.changelog.parents(n) if p != nullid]
- if opts.get(b'no_merges') and len(parents) == 2:
- continue
- count += 1
- displayer.show(repo[n])
- displayer.close()
+ if opts.get(b'newest_first'):
+ o.reverse()
+ ui.pager(b'outgoing')
+ displayer = logcmdutil.changesetdisplayer(ui, repo, opts)
+ count = 0
+ for n in o:
+ if limit is not None and count >= limit:
+ break
+ parents = [p for p in repo.changelog.parents(n) if p != nullid]
+ if opts.get(b'no_merges') and len(parents) == 2:
+ continue
+ count += 1
+ displayer.show(repo[n])
+ displayer.close()
cmdutil.outgoinghooks(ui, repo, other, opts, o)
- recurse()
- return 0 # exit code is zero since we found outgoing changes
+ ret = min(ret, recurse())
+ return ret # exit code is zero since we found outgoing changes
finally:
other.close()