Mercurial > hg
changeset 20555:4add43865a9b
ancestors: remove unnecessary handling of 'left'
If one of the initial nodes also is an ancestor then that most be the only
ancestor. There is no need for additional bookkeeping.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Mon, 24 Feb 2014 22:42:13 +0100 |
parents | 24e0661e6c2e |
children | db0740a487ab |
files | mercurial/ancestor.py mercurial/parsers.c |
diffstat | 2 files changed, 7 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/ancestor.py Mon Feb 24 22:42:13 2014 +0100 +++ b/mercurial/ancestor.py Mon Feb 24 22:42:13 2014 +0100 @@ -31,7 +31,7 @@ poison = 1 << (i + 1) gca = set() - interesting = left = len(nodes) + interesting = len(nodes) nv = len(seen) - 1 while nv >= 0 and interesting: v = nv @@ -45,10 +45,8 @@ gca.add(v) sv |= poison if v in nodes: - left -= 1 - if left <= 1: - # history is linear - return set([v]) + # history is linear + return set([v]) if sv < poison: for p in pfunc(v): sp = seen[p]
--- a/mercurial/parsers.c Mon Feb 24 22:42:13 2014 +0100 +++ b/mercurial/parsers.c Mon Feb 24 22:42:13 2014 +0100 @@ -1208,7 +1208,7 @@ const bitmask allseen = (1ull << revcount) - 1; const bitmask poison = 1ull << revcount; PyObject *gca = PyList_New(0); - int i, v, interesting, left; + int i, v, interesting; int maxrev = -1; long sp; bitmask *seen; @@ -1230,7 +1230,7 @@ for (i = 0; i < revcount; i++) seen[revs[i]] = 1ull << i; - interesting = left = revcount; + interesting = revcount; for (v = maxrev; v >= 0 && interesting; v--) { long sv = seen[v]; @@ -1251,11 +1251,8 @@ } sv |= poison; for (i = 0; i < revcount; i++) { - if (revs[i] == v) { - if (--left <= 1) - goto done; - break; - } + if (revs[i] == v) + goto done; } } }