[PATCH 4 of 6] py3: make 'None in lazyancestors' not crash
Yuya Nishihara
yuya at tcha.org
Sun Jul 8 08:30:45 EDT 2018
# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1531037874 -32400
# Sun Jul 08 17:17:54 2018 +0900
# Node ID a6cd4ea3c3ad4e0bdb2ff40ffc37824e324dc9ed
# Parent b263133eeb5a5db11706fd146ea68ea7ce6ca632
py3: make 'None in lazyancestors' not crash
This looks somewhat weird, but we have callers like 'torev(n) in futurecommon'
around where torev(n) is dictlike.get(n). I could fix callers, but that would
be unnecessarily verbose.
diff --git a/mercurial/ancestor.py b/mercurial/ancestor.py
--- a/mercurial/ancestor.py
+++ b/mercurial/ancestor.py
@@ -339,6 +339,10 @@ class lazyancestors(object):
seen = self._containsseen
if target in seen:
return True
+ # Only integer target is valid, but some callers expect 'None in self'
+ # to be False. So we explicitly allow it.
+ if target is None:
+ return False
parentrevs = self._parentrevs
visit = self._containsvisit
More information about the Mercurial-devel
mailing list