January 12, 2010

DVCS - I can has branching?

Having used git for a very short amount of time at my brief job-that-died and then gone back to SVN at TA I already want some of the features back. SVN, specifically SVN's gruesome branching and merging, is just not enough for modern development.

Mind you, I don't give a flying whatsis about the "D" in "DVCS" - I don't really need to have multiple distributed sources of truth. What I need is to be able to freely branch and merge from branch to branch. Where by "be able to" I mean "not recoil in pain looking at the steps to do these things".

The DVCSs seem to have branching as fundamental as compared to the older VCS generation where branching is something that is supported because sometimes you have to do it.

In modern development, sometimes is all the time.

I suspect I would probably prefer another DVCS to git - git has that special unix-culture syntax that I hate so much - but I'd take git if it were offered to me and never look back.

2 comments:

  1. I am a stodgy person, and distrust any version control system less than ten years old -- version control is the one thing that absolutely cannot under any circumstances be allowed to fail. I was approximately the last person on earth to move from CVS to SVN.

    I am really looking forward to four years from now when git meets that criterion. I might be tempted to cheat, even.

    What I fundamentally want in a version control system is "like ClearCase, except actually a product rather than a pile of random parts, and not designed by the criminally psychotic, and without the dumb locking features, and without administrators who try to re-implement CVS on top of it" -- that is, version control where branching and merging are the fundamental operations, where the notion of "checking out" a "sandbox" is the same as branching but less public. Ideally where branching is free from a performance perspective, where merging is properly factored and assisted, and where the relationship between file versions is itself a versioned object and a mutable, extensible thing.

    What I'd settle for is a dvcs that has statistically zero bugs and doesn't pose a constant threat of data loss.

    ReplyDelete
  2. Try Mercurial, you'll never look back.

    ReplyDelete