[PATCH 2 of 2] graphlog: draw graphs in give order

Vishakh vsh426 at gmail.com
Sun Apr 4 13:09:53 CDT 2010


# HG changeset patch
# User Vishakh <vsh426 at gmail.com>
# Date 1270404568 -19800
# Node ID 4a7f1e4cb05f497e60d957e0fb73a3f4c351b70c
# Parent  8f5646c4358358a4249273285793544f6e466443
graphlog: draw graphs in give order

diff -r 8f5646c43583 -r 4a7f1e4cb05f hgext/graphlog.py
--- a/hgext/graphlog.py	Sun Apr 04 23:30:24 2010 +0530
+++ b/hgext/graphlog.py	Sun Apr 04 23:39:28 2010 +0530
@@ -39,11 +39,7 @@
     ncols = len(seen)
     seen[nodeidx:nodeidx + 1] = newparents
     edges = [(nodeidx, seen.index(p)) for p in knownparents]
-
-    if len(newparents) > 0:
-        edges.append((nodeidx, nodeidx))
-    if len(newparents) > 1:
-        edges.append((nodeidx, nodeidx + 1))
+    edges.extend([(nodeidx, nodeidx + newparents.index(p)) for p in newparents])
 
     nmorecols = len(seen) - ncols
     return nodeidx, edges, ncols, nmorecols
@@ -75,7 +71,7 @@
             interline[2 * start + 1] = "\\"
         elif start == end:
             interline[2 * start] = "|"
-        else:
+        elif len(nodeline) > (2 * end):
             nodeline[2 * end] = "+"
             if start > end:
                 (start, end) = (end, start)
@@ -126,7 +122,6 @@
     """
 
     idx, edges, ncols, coldiff = coldata
-    assert -2 < coldiff < 2
     if coldiff == -1:
         # Transform
         #
@@ -187,6 +182,16 @@
         lines.append(get_padding_line(idx, ncols, edges))
     lines.append(shift_interline)
 
+    while len(shift_interline) < (((ncols + coldiff) * 2) - 1):
+        try:
+            nidx = nidx + 1
+        except NameError:
+            nidx = idx + 1
+        shift_interline = ["|"]
+        shift_interline.extend([" ", "|"] * nidx)
+        shift_interline.extend(["\\", " "] * (ncols - idx))
+        lines.append(shift_interline)
+
     # make sure that there are as many graph lines as there are
     # log strings
     while len(text) < len(lines):
@@ -209,7 +214,7 @@
 def get_revs(repo, rev_opt):
     if rev_opt:
         revs = revrange(repo, rev_opt)
-        return (max(revs), min(revs))
+        return (revs[0], revs[-1])
     else:
         return (len(repo) - 1, 0)
 
diff -r 8f5646c43583 -r 4a7f1e4cb05f tests/test-glog
--- a/tests/test-glog	Sun Apr 04 23:30:24 2010 +0530
+++ b/tests/test-glog	Sun Apr 04 23:39:28 2010 +0530
@@ -140,6 +140,9 @@
 echo % glog
 hg glog
 
+echo % "reverse glog -r :" 
+hg glog -r :
+
 echo % file glog
 hg glog a
 
diff -r 8f5646c43583 -r 4a7f1e4cb05f tests/test-glog.out
--- a/tests/test-glog.out	Sun Apr 04 23:30:24 2010 +0530
+++ b/tests/test-glog.out	Sun Apr 04 23:39:28 2010 +0530
@@ -307,6 +307,245 @@
    date:        Thu Jan 01 00:00:00 1970 +0000
    summary:     (0) root
 
+% reverse glog -r :
+o                changeset:   0:e6eb3150255d
+|\               user:        test
+| |\             date:        Thu Jan 01 00:00:00 1970 +0000
+| | |\           summary:     (0) root
+| | | |\
+| | | | |\
+| | | | | |\
+| | | | | | |\
+o---+-+-+-+ | |            changeset:   1:6db2ef61d156
+|\ \ \ \ \ \ \ \           user:        test
+| |\ \ \ \ \ \ \ \         date:        Thu Jan 01 00:00:01 1970 +0000
+| | |\ \ \ \ \ \ \ \       summary:     (1) collapse
+| | | |\ \ \ \ \ \ \ \
+| | | | |\ \ \ \ \ \ \ \
+o---+ | | | | | | | | | |      changeset:   2:3d9a33b8d1e1
+|\ \ \ \ \ \ \ \ \ \ \ \ \     user:        test
+| |\ \ \ \ \ \ \ \ \ \ \ \ \   date:        Thu Jan 01 00:00:02 1970 +0000
+| | | | | | | | | | | | | | |  summary:     (2) collapse
+| | | | | | | | | | | | | | |
+o-----+ | | | | | | | | | | |  changeset:   3:27eef8ed80b4
+| | | | | | | | | | | | | | |  user:        test
+| | | | | | | | | | | | | | |  date:        Thu Jan 01 00:00:03 1970 +0000
+| | | | | | | | | | | | | | |  summary:     (3) collapse
+| | | | | | | | | | | | | | |
++-----o | | | | | | | | | | |  changeset:   4:26a8bac39d9f
+| | |  / / / / / / / / / / /   parent:      1:6db2ef61d156
+| | | | | | | | | | | | | |    parent:      3:27eef8ed80b4
+| | | | | | | | | | | | | |    user:        test
+| | | | | | | | | | | | | |    date:        Thu Jan 01 00:00:04 1970 +0000
+| | | | | | | | | | | | | |    summary:     (4) merge two known; one immediate left, one immediate right
+| | | | | | | | | | | | | |
+o---+ | | | | | | | | | | |  changeset:   5:4409d547b708
+| | | | | | | | | | | | | |  parent:      3:27eef8ed80b4
+|/ / / / / / / / / / / / /   parent:      4:26a8bac39d9f
+| | | | | | | | | | | | |    user:        test
+| | | | | | | | | | | | |    date:        Thu Jan 01 00:00:05 1970 +0000
+| | | | | | | | | | | | |    summary:     (5) expand
+| | | | | | | | | | | | |
+o-------------+ | | | | |  changeset:   6:b105a072e251
+| | | | | | | | | | | | |  parent:      2:3d9a33b8d1e1
+| | | | | | | | | | | | |  parent:      5:4409d547b708
+| | | | | | | | | | | | |  user:        test
+| | | | | | | | | | | | |  date:        Thu Jan 01 00:00:06 1970 +0000
+| | | | | | | | | | | | |  summary:     (6) merge two known; one immediate left, one far left
+| | | | | | | | | | | | |
+| o---------+ | | | | | |  changeset:   7:b632bb1b1224
+| | | | | | | | | | | | |  parent:      2:3d9a33b8d1e1
+| | | | | | | | | | | | |  parent:      5:4409d547b708
+| | | | | | | | | | | | |  user:        test
+| | | | | | | | | | | | |  date:        Thu Jan 01 00:00:07 1970 +0000
+| | | | | | | | | | | | |  summary:     (7) expand
+| | | | | | | | | | | | |
+| +---------o | | | | | |  changeset:   8:7a0b11f71937
+| | | | | |  / / / / / /   parent:      0:e6eb3150255d
+| | | | | | | | | | | |    parent:      7:b632bb1b1224
+| | | | | | | | | | | |    user:        test
+| | | | | | | | | | | |    date:        Thu Jan 01 00:00:08 1970 +0000
+| | | | | | | | | | | |    summary:     (8) merge two known; one immediate left, one far right
+| | | | | | | | | | | |
+| o | | | | | | | | | |  changeset:   9:7010c0af0a35
+| |\| | | | | | | | | |  parent:      7:b632bb1b1224
+| | | | | | | | | | | |  parent:      8:7a0b11f71937
+| | | | | | | | | | | |  user:        test
+| | | | | | | | | | | |  date:        Thu Jan 01 00:00:09 1970 +0000
+| | | | | | | | | | | |  summary:     (9) expand
+| | | | | | | | | | | |
++-----------o | | | | |  changeset:   10:74c64d036d72
+| | | | | |  / / / / /   parent:      0:e6eb3150255d
+| | | | | | | | | | |    parent:      6:b105a072e251
+| | | | | | | | | | |    user:        test
+| | | | | | | | | | |    date:        Thu Jan 01 00:00:10 1970 +0000
+| | | | | | | | | | |    summary:     (10) merge two known; one immediate left, one near right
+| | | | | | | | | | |
+o | | | | | | | | | |  changeset:   11:832d76e6bdf2
+|/ / / / / / / / / /   parent:      6:b105a072e251
+| | | | | | | | | |    parent:      10:74c64d036d72
+| | | | | | | | | |    user:        test
+| | | | | | | | | |    date:        Thu Jan 01 00:00:11 1970 +0000
+| | | | | | | | | |    summary:     (11) expand
+| | | | | | | | | |
+| o-------+ | | | |  changeset:   12:86b91144a6e9
+| | | | | | | | | |  parent:      1:6db2ef61d156
+| | | | | | | | | |  parent:      9:7010c0af0a35
+| | | | | | | | | |  user:        test
+| | | | | | | | | |  date:        Thu Jan 01 00:00:12 1970 +0000
+| | | | | | | | | |  summary:     (12) merge two known; one immediate right, one far left
+| | | | | | | | | |
+o | | | | | | | | |  changeset:   13:22d8966a97e3
+| | | | | | | | | |  parent:      9:7010c0af0a35
+| | | | | | | | | |  parent:      11:832d76e6bdf2
+| | | | | | | | | |  user:        test
+| | | | | | | | | |  date:        Thu Jan 01 00:00:13 1970 +0000
+| | | | | | | | | |  summary:     (13) expand
+| | | | | | | | | |
++---------o | | | |  changeset:   14:8eac370358ef
+| | | | |  / / / /   parent:      0:e6eb3150255d
+| | | | | | | | |    parent:      12:86b91144a6e9
+| | | | | | | | |    user:        test
+| | | | | | | | |    date:        Thu Jan 01 00:00:14 1970 +0000
+| | | | | | | | |    summary:     (14) merge two known; one immediate right, one far right
+| | | | | | | | |
+o---+ | | | | | |  changeset:   15:1dda3f72782d
+| | | | | | | | |  parent:      13:22d8966a97e3
+| | | | | | | | |  parent:      14:8eac370358ef
+| | | | | | | | |  user:        test
+| | | | | | | | |  date:        Thu Jan 01 00:00:15 1970 +0000
+| | | | | | | | |  summary:     (15) expand
+| | | | | | | | |
+| +-------o | | |  changeset:   16:3677d192927d
+| | | | |  / / /   parent:      0:e6eb3150255d
+| | | | | | | |    parent:      1:6db2ef61d156
+| | | | | | | |    user:        test
+| | | | | | | |    date:        Thu Jan 01 00:00:16 1970 +0000
+| | | | | | | |    summary:     (16) merge two known; one immediate right, one near right
+| | | | | | | |
+| o | | | | | |  changeset:   17:44765d7c06e0
+|/ / / / / / /   parent:      12:86b91144a6e9
+| | | | | | |    parent:      16:3677d192927d
+| | | | | | |    user:        test
+| | | | | | |    date:        Thu Jan 01 00:00:17 1970 +0000
+| | | | | | |    summary:     (17) expand
+| | | | | | |
+| o---+-----+      changeset:   18:1aa84d96232a
+| |\ \ \ \ \ \     parent:      1:6db2ef61d156
+| | |\ \ \ \ \ \   parent:      15:1dda3f72782d
+| | | | | | | | |  user:        test
+| | | | | | | | |  date:        Thu Jan 01 00:00:18 1970 +0000
+| | | | | | | | |  summary:     (18) merge two known; two far left
+| | | | | | | | |
+o | | | | | | | |  changeset:   19:31ddc2c1573b
+| | | | | | | | |  parent:      15:1dda3f72782d
+| | | | | | | | |  parent:      17:44765d7c06e0
+| | | | | | | | |  user:        test
+| | | | | | | | |  date:        Thu Jan 01 00:00:19 1970 +0000
+| | | | | | | | |  summary:     (19) expand
+| | | | | | | | |
++-----------o | |  changeset:   20:d30ed6450e32
+| | | | | |  / /   parent:      0:e6eb3150255d
+| | | | | | | |    parent:      18:1aa84d96232a
+| | | | | | | |    user:        test
+| | | | | | | |    date:        Thu Jan 01 00:00:20 1970 +0000
+| | | | | | | |    summary:     (20) merge two known; two far right
+| | | | | | | |
+o---+-+ | | | |      changeset:   21:d42a756af44d
+|\ \ \ \ \ \ \ \     parent:      19:31ddc2c1573b
+| |\ \ \ \ \ \ \ \   parent:      20:d30ed6450e32
+| | | | | | | | | |  user:        test
+| | | | | | | | | |  date:        Thu Jan 01 00:00:21 1970 +0000
+| | | | | | | | | |  summary:     (21) expand
+| | | | | | | | | |
+| | | o-----+ | | |  changeset:   22:e0d9cccacb5d
+| | |   | | | | | |  parent:      18:1aa84d96232a
+| | |  / / / / / /   parent:      21:d42a756af44d
+| | | | | | | | |    user:        test
+| | | | | | | | |    date:        Thu Jan 01 00:00:22 1970 +0000
+| | | | | | | | |    summary:     (22) merge two known; one far left, one far right
+| | | | | | | | |
+| | | | | o---+ |  changeset:   23:a01cddf0766d
+| | | | |   | | |  parent:      1:6db2ef61d156
+| | | | |  / / /   parent:      22:e0d9cccacb5d
+| | | | | | | |    user:        test
+| | | | | | | |    date:        Thu Jan 01 00:00:23 1970 +0000
+| | | | | | | |    summary:     (23) merge one known; immediate left
+| | | | | | | |
++-----------o |  changeset:   24:a9c19a3d96b7
+| | | | | |  /   parent:      0:e6eb3150255d
+| | | | | | |    parent:      23:a01cddf0766d
+| | | | | | |    user:        test
+| | | | | | |    date:        Thu Jan 01 00:00:24 1970 +0000
+| | | | | | |    summary:     (24) merge one known; immediate right
+| | | | | | |
+o-----+ | | |  changeset:   25:91da8ed57247
+  | | | | | |  parent:      21:d42a756af44d
+ / / / / / /   parent:      24:a9c19a3d96b7
+| | | | | |    user:        test
+| | | | | |    date:        Thu Jan 01 00:00:25 1970 +0000
+| | | | | |    summary:     (25) merge one known; far left
+| | | | | |
+| | o---+ |  changeset:   26:7f25b6c2f0b9
+| |   | | |  parent:      18:1aa84d96232a
+| |  / / /   parent:      25:91da8ed57247
+| | | | |    user:        test
+| | | | |    date:        Thu Jan 01 00:00:26 1970 +0000
+| | | | |    summary:     (26) merge one known; far right
+| | | | |
+o | | | |  changeset:   27:886ed638191b
+| | | | |  parent:      21:d42a756af44d
+| | | | |  user:        test
+| | | | |  date:        Thu Jan 01 00:00:27 1970 +0000
+| | | | |  summary:     (27) collapse
+| | | | |
+| | | o |  changeset:   28:44ecd0b9ae99
+| | | | |  parent:      1:6db2ef61d156
+| | | | |  parent:      26:7f25b6c2f0b9
+| | | | |  user:        test
+| | | | |  date:        Thu Jan 01 00:00:28 1970 +0000
+| | | | |  summary:     (28) merge zero known
+| | | | |
+| | | | o  changeset:   29:cd9bb2be7593
+| | | |/   parent:      0:e6eb3150255d
+| | | |    user:        test
+| | | |    date:        Thu Jan 01 00:00:29 1970 +0000
+| | | |    summary:     (29) regular commit
+| | | |
+| +---o  changeset:   30:6e11cd4b648f
+| | |    parent:      28:44ecd0b9ae99
+| | |    parent:      29:cd9bb2be7593
+| | |    user:        test
+| | |    date:        Thu Jan 01 00:00:30 1970 +0000
+| | |    summary:     (30) expand
+| | |
+| o |  changeset:   31:621d83e11f67
+|/ /   parent:      21:d42a756af44d
+| |    parent:      30:6e11cd4b648f
+| |    user:        test
+| |    date:        Thu Jan 01 00:00:31 1970 +0000
+| |    summary:     (31) expand
+| |
+o |  changeset:   32:d06dffa21a31
+| |  parent:      27:886ed638191b
+| |  parent:      31:621d83e11f67
+| |  user:        test
+| |  date:        Thu Jan 01 00:00:32 1970 +0000
+| |  summary:     (32) expand
+| |
+| o  changeset:   33:68608f5145f9
+|    parent:      18:1aa84d96232a
+|    user:        test
+|    date:        Thu Jan 01 00:00:33 1970 +0000
+|    summary:     (33) head
+|
+@  changeset:   34:fea3ac5810e0
+   tag:         tip
+   parent:      32:d06dffa21a31
+   user:        test
+   date:        Thu Jan 01 00:00:34 1970 +0000
+   summary:     (34) head
+
 % file glog
 @  changeset:   34:fea3ac5810e0
 |  tag:         tip


More information about the Mercurial-devel mailing list