mercurial/cmdutil.py
changeset 17181 6f71167292f2
parent 17180 ae0629161090
child 17182 cdf1532d89c6
--- a/mercurial/cmdutil.py	Sat Jul 14 18:55:21 2012 +0200
+++ b/mercurial/cmdutil.py	Sat Jul 14 19:09:22 2012 +0200
@@ -1430,6 +1430,26 @@
             graphmod.ascii(ui, state, type, char, lines, coldata)
     displayer.close()
 
+def graphlog(ui, repo, *pats, **opts):
+    # Parameters are identical to log command ones
+    revs, expr, filematcher = getgraphlogrevs(repo, pats, opts)
+    revs = sorted(revs, reverse=1)
+    limit = loglimit(opts)
+    if limit is not None:
+        revs = revs[:limit]
+    revdag = graphmod.dagwalker(repo, revs)
+
+    getrenamed = None
+    if opts.get('copies'):
+        endrev = None
+        if opts.get('rev'):
+            endrev = max(scmutil.revrange(repo, opts.get('rev'))) + 1
+        getrenamed = templatekw.getrenamedfn(repo, endrev=endrev)
+    displayer = show_changeset(ui, repo, opts, buffered=True)
+    showparents = [ctx.node() for ctx in repo[None].parents()]
+    displaygraph(ui, revdag, displayer, showparents,
+                 graphmod.asciiedges, getrenamed, filematcher)
+
 def add(ui, repo, match, dryrun, listsubrepos, prefix, explicitonly):
     join = lambda f: os.path.join(prefix, f)
     bad = []