delta: filter nullrev out first
When picking a potential candidate, we filter them on various criteria. The
"different from nullrev" criteria is very fast to compute and we should
process it first.
--- a/mercurial/revlogutils/deltas.py Thu Dec 06 10:38:30 2018 +0100
+++ b/mercurial/revlogutils/deltas.py Thu Dec 06 10:39:05 2018 +0100
@@ -633,6 +633,10 @@
or deltalength(rev))):
tested.add(rev)
rev = deltaparent(rev)
+ # no need to try a delta against nullrev, this will be done as a
+ # last resort.
+ if rev == nullrev:
+ continue
# filter out revision we tested already
if rev in tested:
continue
@@ -640,10 +644,6 @@
# filter out delta base that will never produce good delta
if deltas_limit < revlog.length(rev):
continue
- # no need to try a delta against nullrev, this will be done as a
- # last resort.
- if rev == nullrev:
- continue
# no delta for rawtext-changing revs (see "candelta" for why)
if revlog.flags(rev) & REVIDX_RAWTEXT_CHANGING_FLAGS:
continue