Verbatim
Currently running a huge merge between the Tiger and Leopard branches of one of my projects (WOCommon). SVK really makes this kind of thing a breeze… I was about to say, "I don’t know how I ever lived without it", but the truth is I do know exactly how I lived without it: I basically avoided branching and merging and did as little of it as possible.
That’s a shame because if I had known about SVK sooner I could have kept my development process much more nimble: with branches for long-running, disruptive changes on the one hand, and others for stable, release-worthy snapshots at any time.
I’m afraid I slipped up on this merge by forgetting to pass the --verbatim
switch to svk
… So there have been a couple of hundred log messages like this one which are prepended by some SVK metadata (r1485@cuzco (orig r239): wincent | 2006-12-22 20:17:52 +0100
in this case) that I don’t really want cluttering up my log messages… ah well.
Bugs
Of course, SVK is still not perfect and has its share of bugs. After a couple of hundred changes I got this:
Too many open files: Can't open file '/Users/wincent/.svk/local/db/revs/1262': Too many open files
So fairly obvious there are still some resource leakage issues to be taken care of.
On trying again:
Transaction is out of date: Out of date: '/trunk/WOBaseCore/WOSingleton+WOBaseCore.m' in transaction '538-1'
Please sync mirrored path /mirrors/WOCommon/trunk first.
I had to perform the suggested sync
before proceeding:
svk sync -a //mirrors/WOCommon
Conclusion
But little glitches aside, SVK is a great tool. For the most part it’s just a case of firing off the merge and resolving the occasional conflict; and conflict resolution is a pleasure thanks to the tight integration with Apple’s FileMerge. Subversion 1.5 is around the corner and will finally bring some rudimentary merge tracking facilities, but it still has a long way to go to catch up with SVK.