mercurial/hg.py
changeset 46915 efc6f6a794bd
parent 46914 50b79f8b802d
child 46930 0afe96e374a7
--- 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