# HG changeset patch # User Pierre-Yves David # Date 1618161614 -7200 # Node ID 627bb1875fee6ade373d319c8fba56a2a781f1e3 # Parent 6071bfab629204eea9ac170bf0359c0d39d39964 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 diff -r 6071bfab6292 -r 627bb1875fee mercurial/hg.py --- 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()