Bug report

Dennis Brakhane brakhane at googlemail.com
Sat Nov 20 18:39:23 CST 2010


Am 21.11.2010 01:05, schrieb Dennis Brakhane:
> cs 35 does actually contain cantroid_d, while 207 does not!
> This is why they differ. I will try to reproduce this with a minimal
> test case.

Just to reiterate: the reason why convert fails here is clear:
35 and 207 have a different hash because they are not identical, 35 does
have cantroid_d while 207 has not.

When you tell convert to remove cantroid_d, cs 35 and 207 will now have
the same hash, as will all their antecendents.

The question now is, how did you manage to get your repo in that state?
Do you recall what happened back then when you removed cantroid_d from
.hgignore?

@Tobias:

For you problem at hand: you should be able to do a nice convert, even
without candroid_d, you would just have to remove one of the bogus
branches, the following seems to work:

1. Clone up to point where history branches:
$ hg clone cantroid -r f5c989bf3342 cantroid-fixed

2. Go into the new directory
$ cd cantroid-fixed

3. Add the rest of the revisions that are not in the bogus branch,
   staying in my picture, there would be Bn+1, Bn+2 and everything
   after the merge

$ hg -R ../cantroid export -r 6ba4010f -r 68fb85ab4c -r a7f771ab:tip |
hg import -

(everything on one line, mind the pipe)

4. Verify that everything looks ok

5. Do the convert

$ cd .. ;  hg convert --filemap cantroid_filemap -A cantroid_usermap
cantroid-fixed cantroid-converted

6. Verify again that everything looks good

7. ???

8. Profit!

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 554 bytes
Desc: OpenPGP digital signature
URL: <http://selenic.com/pipermail/mercurial/attachments/20101121/92199798/attachment.pgp>


More information about the Mercurial mailing list