dirstate bug with debugsetparents?

Nathan Binkert nate at binkert.org
Thu Mar 22 01:19:23 CDT 2007


I'm working on converting a repository, and I want to preserve branching, 
so I'm using debugsetparents.  I've got tailor mostly to the point where 
everythign works with branching, but it seems that I can't convert a merge 
across rename.  The problem seems to have somethign to do with the fact 
that I do a debugsetparents which changes the parents in the dirstate(). 
That works great.  The problem is that in a merge across rename situation, 
I can change the parents, but the dirstate still represents the tip and it 
complains that the old file name is not tracked.  This is a correct 
assertion for the tip, but incorrect on the branch.

Here's an example

rev 0 : commit x ---> rev 1 : rename x to y ---> rev 3: merge
                  \--> rev 2 : modify x -------/

when trying to commit rev 2, I do a debugsetparents to 0, but when I 
commit the dirstate is referring to rev 1 which has no 'x' and it barfs.


Any tips on how to proceed?  Am I making sense?  Is this a bug in hg, or 
in the way I am using it?

Thanks,

   Nate


More information about the Mercurial-devel mailing list