<p>Version control system migrations are a fact of life for developers in any longer lived codebase. In fact, I’ve had a hand in quite a few migrations as newer, more workable version control systems became available. Also, like a lot of developers, I’ve got fragments of source code dating back quite some years floating around on various servers and development machines of mine. Not necessarily code that is still being used, but still code that I don’t want to just delete…
<p>I’ve mentioned before that I prefer <a href="https://www.mercurial-scm.org/">Mercurial</a> to <a href="https://git-scm.com/">Git</a>, at least for my own work. That said, git has a nice feature that allows you to cherry pick revisions to merge between branches. That’s extremely useful if you want to move a single change between branches and not do a full branch merge. Turns out mercurial has that ability, too, but it goes by a slightly different name.</p>
<p>The default setup for the <a href="http://mercurial.selenic.com/">Mercurial</a> DVCS on Windows with <a href="http://tortoisehg.bitbucket.org/">tortoisehg</a> uses <a href="http://the.earth.li/~sgtatham/putty/0.63/htmldoc/Chapter7.html#plink">plink</a> and <a href="http://the.earth.li/~sgtatham/putty/0.63/htmldoc/Chapter9.html#pageant">Pageant</a> to manage SSH keys when you are using ssh as the transport protocol for mercurial. That’s most likely the right choice for a normal Windows…