convert: add config option for disabling ancestor parent checks
When converting merge commits, convert checks if any of the parents are
ancestors of any of the other parents. To do this, it builds an ancestor list
for every commit in the repository. On large repos this can take a long time
(30min+). Let's add an option for disabling this check to preserve performance.
The downside of this is that it may create unnecessary parent connections when
enabled (which is unfortunate, but not incorrect).
To verify, I ran the convert tests with the flag enabled, and verified the graph
changes were all just to add new parents that were ancestors of existing
parents.
#require unix-permissions no-root
$ hg init a
$ cd a
$ echo foo > b
$ hg add b
$ hg ci -m "b"
$ chmod -w .hg/store
$ cd ..
$ hg clone a b
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ chmod +w a/.hg/store # let test clean up
$ cd b
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 1 changesets, 1 total revisions
$ cd ..