tags:

views:

31

answers:

1

I have a few odd issues with a svn repository I'm trying to convert to hg. Our repository looks more or less like this.

proj_root  ___ trunk
       \  \___ tags
        \_____ branches __A
                   \   \__B
                    \_____Q __ C
                          \___ D

Ideally I could specify --config convert.svn.branches=branches;branches/Q or somesuch nonesense. (Q does not contain a branch in itself, just the two "sub branches".

I just finished converting a repository in which Q only had one subdirectory, and the solution there was easy. rename C/ . in a --filemap option, but that fails rather dramatically for this case (the Q branch interleaves C and D).

Ideally, I could simply ignore Q entirely in one pass, and then do a second conversion with the convert.svn.branches option set to branches/Q, but I cannot get the following syntax in the filemap to work:

exclude "Q C D"

nor

exclude "C D"

My hope was that excluding C and D would prevent any files from being imported on that branch, and since I have a specified filemap, the resulting empty commits would be removed. I can't get the exclude directive to exclude any directories, no matter the various syntax options I've tried.

Edit: The end result I'd like to have is a mercurial repo with trunk as the normal tip, and named branches A, B, C and D... that silly Q thing can just go away during the conversion, if I can figure out how.

A: 

For some reason when I tried this yesterday, it wasn't working, but today it works...

a filemap of

exclude "C"
exclude "D"

seems to be working properly now... I'm having an odd issue with the first conversion I'm doing crashing, but that's an issue to take up with the devs (unrelated)

jkerian