clfilter: fix `nodemap` usage in `getbundle`
authorPierre-Yves David <pierre-yves.david@logilab.fr>
Mon, 10 Dec 2012 18:12:41 +0100
changeset 18086 739c88ff043c
parent 18085 4c53f015564f
child 18087 5712e3b12274
clfilter: fix `nodemap` usage in `getbundle` With the current implementation, `changelog.nodemap` is not filtered. So some filtered changeset in common are not filtered by `n in nodemap`. This leads to crash lower in the stack when the bundle generation try to access those node on a filtered changelog.
mercurial/localrepo.py
--- a/mercurial/localrepo.py	Mon Dec 17 17:00:24 2012 +0100
+++ b/mercurial/localrepo.py	Mon Dec 10 18:12:41 2012 +0100
@@ -2107,8 +2107,8 @@
         """
         cl = self.changelog
         if common:
-            nm = cl.nodemap
-            common = [n for n in common if n in nm]
+            hasnode = cl.hasnode
+            common = [n for n in common if hasnode(n)]
         else:
             common = [nullid]
         if not heads: