[PATCH 16 of 22 V2-Series-D] hgweb: ignore filtered revision in revnav

Pierre-Yves David pierre-yves.david at ens-lyon.org
Mon Jan 14 14:35:48 CST 2013


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1357842863 -3600
# Node ID 744fd7971957a6539a1627dfed487052f2f0bc25
# Parent  814260dac17076a8c44b588a1968fdb2252e7520
hgweb: ignore filtered revision in revnav

This changeset checks that a revision is known before adding it to the
navigation.

This will prevent traceback on filtered repository. This changeset result in an
incorrect behaviors, Navigation link may be dropped without any replacement.
However this bad navigation generation is much better than a crash

diff --git a/mercurial/hgweb/webutil.py b/mercurial/hgweb/webutil.py
--- a/mercurial/hgweb/webutil.py
+++ b/mercurial/hgweb/webutil.py
@@ -86,10 +86,12 @@ class revnav(object):
         targets.sort()
 
         navbefore = [("(0)", self.hex(0))]
         navafter = []
         for rev in targets:
+            if rev not in self.cl:
+                continue
             if pos < rev < limit:
                 navafter.append(("+%d" % f, self.hex(rev)))
             if 0 < rev < pos:
                 navbefore.append(("-%d" % f, self.hex(rev)))
 


More information about the Mercurial-devel mailing list