This is an archive of the discontinued Mercurial Phabricator instance.

sparse-revlog: only refine delta candidates in the sparse case (issue6006)
ClosedPublic

Authored by lothiraldan on Oct 31 2018, 6:18 AM.

Details

Summary

Starting with 5aef5afa8654, a valid delta parent might be "refined". This
allows repository using sparse-revlog to produce better delta chain by using
better intermediate snapshot base.

However, this refining step was performed in all cases, including for
repository not using sparse-revlog. This could produce a strange chain in the
general delta case and corrupted repository in the non-general delta case.

We now skip this step unless sparse-revlog is in use.

In issue 6006, Yuya Nishihara provided a test case using an external
repository, so we did not include it. Finding "laboratory" condition to
reproduce this case and implementing an efficient test reproducing it is a bit
tricky. We do not foresee to have the time to provide one by the release date.

Diff Detail

Repository
rHG Mercurial
Lint
Lint Skipped
Unit
Unit Tests Skipped

Event Timeline

lothiraldan created this revision.Oct 31 2018, 6:18 AM
This revision was automatically updated to reflect the committed changes.