diff --git a/mercurial/revlog.py b/mercurial/revlog.py --- a/mercurial/revlog.py +++ b/mercurial/revlog.py @@ -1432,9 +1432,9 @@ class revlog(object): if self._isgooddelta(candidatedelta, textlen): delta = candidatedelta if delta is None and self._generaldelta: - parents = [p1r, p2r] # exclude already lazy tested base if any - parents = [p for p in parents if p not in tested] + parents = [p for p in (p1r, p2r) + if p != nullrev and p not in tested] if parents and not self._aggressivemergedeltas: # Pick whichever parent is closer to us (to minimize the # chance of having to build a fulltext). diff --git a/tests/test-bundle.t b/tests/test-bundle.t --- a/tests/test-bundle.t +++ b/tests/test-bundle.t @@ -266,13 +266,13 @@ Cannot produce streaming clone bundles w packed1 is produced properly $ hg -R test debugcreatestreamclonebundle packed.hg - writing 2667 bytes for 6 files + writing 2663 bytes for 6 files bundle requirements: generaldelta, revlogv1 $ f -B 64 --size --sha1 --hexdump packed.hg - packed.hg: size=2830, sha1=c28255110a88ffa52ddc44985cad295b1ab349bc + packed.hg: size=2826, sha1=e139f97692a142b19cdcff64a69697d5307ce6d4 0000: 48 47 53 31 55 4e 00 00 00 00 00 00 00 06 00 00 |HGS1UN..........| - 0010: 00 00 00 00 0a 6b 00 16 67 65 6e 65 72 61 6c 64 |.....k..generald| + 0010: 00 00 00 00 0a 67 00 16 67 65 6e 65 72 61 6c 64 |.....g..generald| 0020: 65 6c 74 61 2c 72 65 76 6c 6f 67 76 31 00 64 61 |elta,revlogv1.da| 0030: 74 61 2f 61 64 69 66 66 65 72 65 6e 74 66 69 6c |ta/adifferentfil| diff --git a/tests/test-generaldelta.t b/tests/test-generaldelta.t --- a/tests/test-generaldelta.t +++ b/tests/test-generaldelta.t @@ -133,8 +133,8 @@ Test format.aggressivemergedeltas $ hg debugindex -m rev offset length delta linkrev nodeid p1 p2 0 0 59 -1 0 8dde941edb6e 000000000000 000000000000 - 1 59 59 -1 1 315c023f341d 000000000000 000000000000 - 2 118 65 1 2 2ab389a983eb 315c023f341d 8dde941edb6e + 1 59 61 0 1 315c023f341d 000000000000 000000000000 + 2 120 65 1 2 2ab389a983eb 315c023f341d 8dde941edb6e $ hg strip -q -r . --config extensions.strip= @@ -145,8 +145,8 @@ Test format.aggressivemergedeltas $ hg debugindex -m rev offset length delta linkrev nodeid p1 p2 0 0 59 -1 0 8dde941edb6e 000000000000 000000000000 - 1 59 59 -1 1 315c023f341d 000000000000 000000000000 - 2 118 62 0 2 2ab389a983eb 315c023f341d 8dde941edb6e + 1 59 61 0 1 315c023f341d 000000000000 000000000000 + 2 120 62 0 2 2ab389a983eb 315c023f341d 8dde941edb6e Test that strip bundle use bundle2 $ hg --config extensions.strip= strip . diff --git a/tests/test-treemanifest.t b/tests/test-treemanifest.t --- a/tests/test-treemanifest.t +++ b/tests/test-treemanifest.t @@ -276,14 +276,14 @@ Turning off treemanifest config has no e $ hg debugindex .hg/store/meta/dir1/00manifest.i rev offset length delta linkrev nodeid p1 p2 0 0 125 -1 4 63c9c0557d24 000000000000 000000000000 - 1 125 131 -1 5 23d12a1f6e0e 000000000000 000000000000 + 1 125 109 0 5 23d12a1f6e0e 000000000000 000000000000 $ echo 2 > dir1/a $ hg --config experimental.treemanifest=False ci -qm 'modify dir1/a' $ hg debugindex .hg/store/meta/dir1/00manifest.i rev offset length delta linkrev nodeid p1 p2 0 0 125 -1 4 63c9c0557d24 000000000000 000000000000 - 1 125 131 -1 5 23d12a1f6e0e 000000000000 000000000000 - 2 256 55 1 6 3cb2d87b4250 23d12a1f6e0e 000000000000 + 1 125 109 0 5 23d12a1f6e0e 000000000000 000000000000 + 2 234 55 1 6 3cb2d87b4250 23d12a1f6e0e 000000000000 Create deeper repo with tree manifests.