[PATCH] hgweb: do not display hidden changesets

pierre-yves.david at logilab.fr pierre-yves.david at logilab.fr
Mon Sep 26 10:49:16 CDT 2011


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1317052038 -7200
# Node ID b2a0477d788718f65b5dfec03d51f07b31d595cf
# Parent  91dc8878f88857f01b86a99ad047400704b5fd7e
hgweb: do not display hidden changesets

diff --git a/mercurial/hgweb/webcommands.py b/mercurial/hgweb/webcommands.py
--- a/mercurial/hgweb/webcommands.py
+++ b/mercurial/hgweb/webcommands.py
@@ -737,11 +737,10 @@ def static(web, req, tmpl):
             tp = [tp]
         static = [os.path.join(p, 'static') for p in tp]
     return [staticfile(static, fname, req)]
 
 def graph(web, req, tmpl):
-
     rev = webutil.changectx(web.repo, req).rev()
     bg_height = 39
     revcount = web.maxshortchanges
     if 'revcount' in req.form:
         revcount = int(req.form.get('revcount', [revcount])[0])
@@ -764,11 +763,19 @@ def graph(web, req, tmpl):
     startrev = rev
     # if starting revision is less than 60 set it to uprev
     if rev < web.maxshortchanges:
         startrev = uprev
 
-    dag = graphmod.dagwalker(web.repo, range(startrev, downrev - 1, -1))
+    # do not include hidden changesets
+    revs = []
+    rev = startrev
+    while rev >=0 and len(revs) < revcount:
+        if rev not in web.repo.changelog.hiddenrevs:
+            revs.append(rev)
+        rev -= 1
+
+    dag = graphmod.dagwalker(web.repo, revs)
     tree = list(graphmod.colored(dag))
     canvasheight = (len(tree) + 1) * bg_height - 27
     data = []
     for (id, type, ctx, vtx, edges) in tree:
         if type != graphmod.CHANGESET:


More information about the Mercurial-devel mailing list