Nice story, but there's no need to categorize a switch from svn to git as optimization, especially as part of the phrase "premature optimization".
That refers to exchanging clarity or simplicity for performance. If a technique is fundamentally superior then it's just the way you should do things, and few things in tech are as unilaterally superior as git over svn.
In this case optimization refers to trying to pick the best option. PG talks about it a lot: we could spend hours trying to pick the most efficient desk layout, the best apartment for getting work done during YC, or a hundred other things. As a startup, the right thing to do in most cases is to shut the hell up, pick something, and get back to work. That was SVN for us.
But if you're really good you might not be willing to spend a big chunk of your day fighting with obsolete technologies. Unless the money makes up for it of course.
I'm not fighting when I use svn, and it's relevant to the client. They choosed it because it's simpler for them, and do all that is required perfectly.
I would totally push git (I pushed for git in some places if you wonder) if I thought it would be a good fit for them, but it's not.
Comments
Nice story, but there's no need to categorize a switch from svn to git as optimization, especially as part of the phrase "premature optimization".
That refers to exchanging clarity or simplicity for performance. If a technique is fundamentally superior then it's just the way you should do things, and few things in tech are as unilaterally superior as git over svn.
In this case optimization refers to trying to pick the best option. PG talks about it a lot: we could spend hours trying to pick the most efficient desk layout, the best apartment for getting work done during YC, or a hundred other things. As a startup, the right thing to do in most cases is to shut the hell up, pick something, and get back to work. That was SVN for us.
Shut the hell up? Sorry, that's not really recommended advice to tell your developers.
At least in the Ruby world, if you are on SVN, say goodbye to any competent devs. We can't work under those conditions.
I'm a competent ruby dev, my two main customers are on svn.
That's really ok with me (although I also use git).
I'm sorry, if you're competent you can make svn work.
No one has any room to complain if they prefer git and the shops repo is in SVN. The git-svn bridge is Excellent.
But if you're really good you might not be willing to spend a big chunk of your day fighting with obsolete technologies. Unless the money makes up for it of course.
http://www.kernel.org/pub/software/scm/git/docs/git-svn.html < Doesn't require much fighting at all.
I'm not fighting when I use svn, and it's relevant to the client. They choosed it because it's simpler for them, and do all that is required perfectly.
I would totally push git (I pushed for git in some places if you wonder) if I thought it would be a good fit for them, but it's not.
"Can't work under those conditions"?
What, having to use "git svn dcommit" to do pushes is a huge deal?
If you're going to be a religious git adherent, learn to use ALL of git.