SOLVE!
At first, I did not notice that my alleged common ancestor was not exactly the same. During the conversion svn-> hg Foo repo, the $ ID $ lines were expanded, but Bar repo was not created. Step 1 below was a simple fix to create a REAL common ancestor.
The following steps allowed me to fulfill my goal:
1 - Make sure the alleged common ancestor (D and D) is actually identical. If not, create a new splicing point (S) for them in the repo bar. S should exactly match the contents of D 'in my example.
... ABCD - JK --- L
\ \ /
S MN
2 - Trim the history of the Foo repository to remove duplicate history, including D ', using
hg convert --splicemap TrimSplicemap Foo FooTrimmed
TrimSplicemap Content: (where E is the full hash of E)
E 00000000000000000000000000000000000000000000
3 - Use the hg strip to remove disabled, redundant history
cd FooTrimmed
hg strip C '
4 - Use hg convert again to merge Foo, deprived of repo on Bar repo when fixing 'S'
cd ../Bar
hg convert --splicemap FooBarSplicemap ../FooTrimmed.
The contents of FooBarSplicemap: (where E 'is the NEW hash for E in FooTrimmed, and S is the hash of S)
E 's
It must be !: D
source share