5

We have a subversion repository, and we'd like to try out Kiln. We imported the repository using the Kiln import tool, but we are not yet ready to have a hard switchover to Mercurial for the entire team. Is it possible to import changes checked in to Subversion since the import? Is it possible to push changes from Mercurial back to the Subversion repository? Eventually we'll want to migrate the whole team to using Mercurial and Kiln, but while we iron out the details and migrate our Subversion-based deployment tools, are there any tools we can use to keep things synchronized?

flag

3 Answers

3

We'd like to chew on this for a bit before answering about the tools (there are a few things that we want to try that we haven't tested in a while).

The tool that most people will be using here is hgsubversion (which just had it's 1.0 release). There is a feature in hgsubversion to allow syncing between a Subversion and Mercurial repository, but we do not recommend it. The primary reason is that it adds another moving part to your source control process that can fail in a variety of ways. What works really well is its ability to move from Subversion to Mercurial once, and then back to Subversion later (if you need to). This process is easier to get right, and easier to debug if something goes wrong. I think it is worth trying to convert your repository, or part of it, to Mercurial and back again to see how it goes. For most people it will just work, and we are happy to answer questions if you are having trouble.

In general, I would say that the ideal thing would be to move some chunk of your project to Kiln/Hg and have everyone that interacts with that chunk of the project use Mercurial. An example of a candidate for this type of thing from the Kiln project would be the client tools installer. It really lives on its own. This kind of thing encourages people to get familiar with Kiln/Hg and allows everyone to get the full benefit of code reviews on the stuff going into that bit of the project. It's also a chance to prove to everyone that the move really isn't that scary :-)

link|flag
I think this is a good place to refer to a rather perceptive piece on migrations, called [Strategy Letter III: Let Me Go Back!](joelonsoftware.com/articles/fog0000000052.html) by one Joel Spolsky. It is scary to move any part of my project to Kiln/Hg without a clean migration path and a way to fall back if it doesn't work out. I myself am not sure that a DVCS is best for us, let alone convincing the rest of the team. – Avi Feb 8 2010 at 9:38
We couldn't agree more. You can already go back to Subversion from Mercurial, and we've worked hard to make sure that the importer works for most people. It is our plan to continue to improve this process as we go along with Kiln. – Jason Rosoff Feb 8 2010 at 14:29
2

My suggestion is the same as Jason's. We're in a similar situation to yourself in that we run Subversion, however we have two repositories, one for Production and one for Test / Prototype work. What we've done is import our Prototype repository into Kiln and then turned access to the original Subversion repository off.

As it turns out for us, we currently have three developers doing prototype work so they're really hammering Kiln and getting their heads round the change of working with a DVCS system and the whole committing work locally, then pulling changes down with fetch enabled and then pushing their work out to Kiln.

The worst case is, it doesn't work out. So it's just a matter of turning the original repository back on and back merging / adding any new changes, which with a file / folder comparison tool like Beyond Compare isn't that difficult (you can exclude the .hg and .svn sub folders from the comparison giving you pretty much what was different).

link|flag
1 
Let us know how this goes, Paul! We're interested to hear about whatever works well or causes problems for this prototype team of yours... – Ben Kamens Feb 2 2010 at 0:35
0

Some time after the fact and with the bonus of Kiln Harmony bringing Git into the game - TortoiseGit Clones SVN repos and can later fetch from and commit to them. I haven't tried to commit to an SVN repo using this so good luck with that.

To clone an SVN repo... hey, here's a blog post on it. Thanks Google. You need to be patient - it takes quite a while. Very patient.

There is also an SVN bridge for Hg but I can't get it to work properly, at least behind an NTLM firewall (using CNTLM) pointing at Sourceforge.

link|flag

Your Answer

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