mercurial/context.py
branchstable
changeset 24818 8d7d0bf62f9f
parent 24817 0bb98eee531d
child 24862 c82d88dfaf59
--- a/mercurial/context.py	Sat Apr 18 14:10:55 2015 +0900
+++ b/mercurial/context.py	Sat Apr 18 15:27:03 2015 +0900
@@ -906,8 +906,15 @@
         introrev = self.introrev()
         if self.rev() != introrev:
             base = self.filectx(self.filenode(), changeid=introrev)
-        if introrev and getattr(base, '_ancestrycontext', None) is None:
-            ac = self._repo.changelog.ancestors([introrev], inclusive=True)
+        if getattr(base, '_ancestrycontext', None) is None:
+            cl = self._repo.changelog
+            if introrev is None:
+                # wctx is not inclusive, but works because _ancestrycontext
+                # is used to test filelog revisions
+                ac = cl.ancestors([p.rev() for p in base.parents()],
+                                  inclusive=True)
+            else:
+                ac = cl.ancestors([introrev], inclusive=True)
             base._ancestrycontext = ac
 
         # This algorithm would prefer to be recursive, but Python is a