graphlog: extract some setup code out of common functions
authorDirkjan Ochtman <dirkjan@ochtman.nl>
Thu, 20 Aug 2009 08:35:03 +0200
changeset 9368 8a4773bcbaec
parent 9367 1ef630452e0b
child 9369 20140c249e63
graphlog: extract some setup code out of common functions
hgext/graphlog.py
--- a/hgext/graphlog.py	Thu Aug 20 08:34:22 2009 +0200
+++ b/hgext/graphlog.py	Thu Aug 20 08:35:03 2009 +0200
@@ -22,18 +22,14 @@
 
 ASCIIDATA = 'ASC'
 
-def asciiformat(ui, repo, revdag, opts, parentrepo=None):
+def asciiformat(revdag, displayer, parents):
     """formats a changelog DAG walk for ASCII output"""
-    if parentrepo is None:
-        parentrepo = repo
-    showparents = [ctx.node() for ctx in parentrepo[None].parents()]
-    displayer = show_changeset(ui, repo, opts, buffered=True)
     for (id, type, ctx, parentids) in revdag:
         if type != graphmod.CHANGESET:
             continue
         displayer.show(ctx)
         lines = displayer.hunk.pop(ctx.rev()).split('\n')[:-1]
-        char = ctx.node() in showparents and '@' or 'o'
+        char = ctx.node() in parents and '@' or 'o'
         yield (id, ASCIIDATA, (char, lines), parentids)
 
 def asciiedges(nodes):
@@ -259,7 +255,9 @@
     else:
         revdag = graphmod.revisions(repo, start, stop)
 
-    fmtdag = asciiformat(ui, repo, revdag, opts)
+    displayer = show_changeset(ui, repo, opts, buffered=True)
+    showparents = [ctx.node() for ctx in repo[None].parents()]
+    fmtdag = asciiformat(revdag, displayer, showparents)
     ascii(ui, asciiedges(fmtdag))
 
 def graphrevs(repo, nodes, opts):
@@ -294,7 +292,9 @@
 
     o = repo.changelog.nodesbetween(o, revs)[0]
     revdag = graphrevs(repo, o, opts)
-    fmtdag = asciiformat(ui, repo, revdag, opts)
+    displayer = show_changeset(ui, repo, opts, buffered=True)
+    showparents = [ctx.node() for ctx in repo[None].parents()]
+    fmtdag = asciiformat(revdag, displayer, showparents)
     ascii(ui, asciiedges(fmtdag))
 
 def gincoming(ui, repo, source="default", **opts):
@@ -343,7 +343,9 @@
 
         chlist = other.changelog.nodesbetween(incoming, revs)[0]
         revdag = graphrevs(other, chlist, opts)
-        fmtdag = asciiformat(ui, other, revdag, opts, parentrepo=repo)
+        displayer = show_changeset(ui, other, opts, buffered=True)
+        showparents = [ctx.node() for ctx in repo[None].parents()]
+        fmtdag = asciiformat(revdag, displayer, showparents)
         ascii(ui, asciiedges(fmtdag))
 
     finally: