# HG changeset patch
# User Wagner Bruna <wbr...@softwareexpress.com.br>
# Date 1276908481 10800
# Branch stable
# Node ID 33938a9efc992e220b576a746e1bd4e050311af0
# Parent  dc3ea93a26cf7ad70b6efe5560c48a879b9e8475
revlog: shows revision graph for revsets

Partially replaces unused similar functionality introduced by 0570db489d62.

diff --git a/tortoisehg/hgtk/logview/revgraph.py 
b/tortoisehg/hgtk/logview/revgraph.py
--- a/tortoisehg/hgtk/logview/revgraph.py
+++ b/tortoisehg/hgtk/logview/revgraph.py
@@ -130,8 +130,8 @@
 type_LOOSE_LOW = 1
 type_LOOSE_HIGH = 2
 
-def revision_grapher(repo, start_rev, stop_rev, branch=None, noheads=False,
-    branch_color=False, hide_revs=[], prune_revs=[]):
+def revision_grapher(repo, start_rev=-1, stop_rev=-1, branch=None, 
noheads=False,
+    branch_color=False, only_revs=[]):
     """incremental revision grapher
 
     This grapher generates a full graph where every edge is visible.
@@ -143,30 +143,23 @@
     to show ancestors of a revision.
     if branch_color is True, the branch colour is determined by a hash
     of the branch tip, and will thus always be the same.
-    hide_revs is a list of revisions to be hidden from the graph
-    prune_revs is a list of revisions to be hidden from the graph,
-    together with their ancestors.
+    if only_revs is not [], only those revisions will be shown.
     """
 
+    shown_revs = None
+    if only_revs:
+        shown_revs = set([repo[repo.lookup(r)].rev() for r in only_revs])
+        start_rev = max(shown_revs)
+        stop_rev = min(shown_revs)
+
     assert start_rev >= stop_rev
     curr_rev = start_rev
     revs = []
     rev_color = {}
     nextcolor = [0]
     
-    hidden_revs = set([repo[repo.lookup(r)].rev() for r in hide_revs])
-    pruned_desc = [repo[repo.lookup(r)].rev() for r in prune_revs]
-    pruned_desc.sort()
-    
     def hidden(rev):
-        while pruned_desc and rev <= pruned_desc[-1]:
-            r = pruned_desc.pop()
-            hidden_revs.add(r)
-            for p in __get_parents(repo, r):
-                if p not in pruned_desc:
-                    pruned_desc.append(p)
-            pruned_desc.sort()
-        return rev in hidden_revs
+        return (shown_revs and (rev not in shown_revs)) or False
     
     while curr_rev >= stop_rev:
         if hidden(curr_rev):
diff --git a/tortoisehg/hgtk/logview/treeview.py 
b/tortoisehg/hgtk/logview/treeview.py
--- a/tortoisehg/hgtk/logview/treeview.py
+++ b/tortoisehg/hgtk/logview/treeview.py
@@ -194,7 +194,8 @@
                 self.grapher = revision_grapher(self.repo, start, end,
                         only_branch, noheads, self.opts.get('branch-color'))
         elif opts.get('revlist', None):
-            self.grapher = dumb_log_generator(self.repo, opts['revlist'])
+            graphcol = True
+            self.grapher = revision_grapher(self.repo, 
only_revs=opts['revlist'])
         else:
             self.grapher = filtered_log_generator(self.repo, pats, opts)
         self.opts['show-graph'] = graphcol

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Tortoisehg-develop mailing list
Tortoisehg-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop

Reply via email to