2

I want to get us using Kiln ASAP but we have a lot of SVN goodies to import and some existing feature branches to wrap up.

How best to straddle the switch over period from import, rounding up old branches in SVN and developing new stuff in Kiln? I can't just have production stop while everything is finished up, I don't want to have half finished features "lost" while we switch.

Ideally I'd like to import all my SVN repos, which takes an age! Then finish up what we are working on. Then just check in the last lot of checkins to SVN into Kiln to bring it up to date. Then switch to using Kiln.

How best to just poke in changed revisions from SVN, the importer only does the lot!

Cheers

Pete

flag
Just to say, I've had Kiln installed for about 4 months now and I've not used SVN since. The switch over was actually pretty smooth. There are some quirks you have to get used to but nothing thats a show stopper. We ended up having to re-import the few mods that where done after our initial import using a splice map (mercurial.selenic.com/wiki/…) very handy and not as scary as you think. The simple answer is to convert over 100% asap and be done with it :) – Pete Duncanson Oct 8 2010 at 10:24

1 Answer

3

Internally, the importer is using hg convert to convert the repo from SVN to Mercurial.

Fortunately, hg convert knows what has been converted and what hasn't, so you can do incremental imports of just the new stuff. You'll have to read through the documentation a bit to get the right flags set, but once you have it right, save all the settings you're using, and set up a repository to be the Mercurial version of the SVN repo. The command should look something like this:

hg convert /url/or/path/to/svn/repo /path/to/hg/mirror --...

That will create a repo called mirror which is exactly that, a mirror of what is in SVN. Do not let any new changes go into this repo, as that will complicate the process. Instead, create a second Mercurial repository that is a clone of the mirror and call it devel. Do your new development in devel, and periodically pull from mirror (but don't push back to mirror).

Doing this will get all of the changes going into SVN into your new Mercurial repositories until everyone can switch over. The main drawback, however, is that there is no way for the people still on SVN to get the changes that are added to the Mercurial repo, so I would not recommend you do this for long.

UPDATE

To enable convert, add the following to your Mercurial.ini or .hgrc file:

[extensions]
convert=
link|flag
2 
For those who don't know you have to enable the convert extension within Mercurial for this to be available. To do this (assuming using windows) go to "documents and settings" and find a file called Mercurial.ini open this up in notepad and the line "convert=" under the [extensions] title. That will give you the command line convert command. – Pete Duncanson Jul 2 2010 at 10:00
@Pete Forgot about that. Thanks! – Tyler Hicks-Wright Jul 2 2010 at 16:34

Your Answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.