Using --splicemap with `hg convert` trying to convert svn to hg fails because the svn parent revs specified in the splicemap are not converted prior to the child rev. In other words, it doesn't appear that the splicemap info is factored into the sort algorithm that determines the order that the revs will be converted. Adding the --datesort option helped it to get further, but it still failed on a later mapping.
I was mistaken about --datesort. That did fix it (it failed earlier with --datesort due to a problem in my splicemap file). But without the --datesort option, it still doesn't work. I think that it still makes sense to add the splicemap dependencies to the default sort algorithm. So I'm leaving this bug open.
Are you using --splicemap to splice yet to be converted revision onto yet to be converted other revisions? It's often used to splice converted revision onto existing mercurial one.
Yes, I was converting an entire svn repo to hg. The convert tool doesn't look at the svn:mergeinfo properties, so I went through these by hand (rather tedious) to create the splicemap. I thought I would need this info in hg so that hg merges in the future would have the correct common parent (I have 2 branches + trunk in svn). I didn't see anything in the hg documentation on convert about using splice to map new converted revisions onto existing hg revs. I wouldn't think it would make sense to run convert to add revs from somewhere else onto existing hg revs. Unless you're trying to keep two different VCS systems in sync??? I'm thinking I just want to do this convert once, and then abandon the svn repo... Anyway, to get back to the specific bug report, the slicemap dependencies were all new converted revs (both child and parents specified using the svn rev numbers). Not adding these dependencies to the default convert sort fails (i.e., without --datesort) because the sort tries to convert the child before one of the parents has been converted...
I have never seen such usage but it makes sense. I can confirm that splicemap entries are not taken in account. Last time I have seen someone use splicemap it was with an svn repository having a branch layout the convert extension could not make sense of. So it converted branches separately and combined everything afterwards. Which is something you probably can do if you do not want to wait for a fix (I cannot see a simple solution for this right now).
Reopening as someone had the problem on IRC. Patch in progress.
Patches submitted here: http://selenic.com/pipermail/mercurial-devel/2012-February/037982.html
Fixed by http://selenic.com/repo/hg/rev/d75aa756149b Patrick Mezard <patrick@mezard.eu> convert: use splicemap entries when sorting revisions (issue1748) (please test the fix)
--- Bug imported by bugzilla@serpentine.com 2012-05-12 09:01 EDT --- This bug was previously known as _bug_ 1748 at http://mercurial.selenic.com/bts/issue1748