mercurial/hg.py
changeset 46912 627bb1875fee
parent 46908 4452cb788404
child 46913 b2740c547243
--- 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()