Combuster wrote:I understand SVN. I know that none of the additional features of git make any difference to me, and I know that - to use git confidently - I would have to spend quite some time reading. And none of the projects I work on, most importantly including office work, actually use git - so that reading / learning would earn me nothing. On the other hand, being competent in SVN made me the #1 contact for SVN-related problems in our department... it's a ROI thing.
I might add to that, that I never saw any VCS except for subversion (or none
) in all professional environments that I have seen so far.
I'll add to this point: the development team uses git exclusively for applications development at work - we moved from SVN just under a year ago now, and the ROI has been immeasurable. The immediate effect was a huge shock as people moved, but now we're doing the craziest merges and little 'off-shoot' branches on ideas that previously, under a single linear history, simply weren't possible. The cost of branching in subversion is huge - and I'm not talking about the data or computational cost, because who really cares about those with today's CPU and memory prices? - but in terms of administrative cost.
All branches in SVN are a part of the same namespace, everyone else *has* to see your branch with the rest of them unless you do /branches/<USER>/mybranch or things like that - which still is pretty ugly - it just sucks. With git, I can start off work in a branch with an idea, revert it if I dislike it - and no one else has to see the mess. Otherwise I can clean it up a bit, send it up so other people can grab my branch, and maybe merge it into master (trunk) or stable later if it really works.
Many of us also use git-svn to locally develop with git and then send the changes to the actual real SVN server for the non-application repository (website, graphics, the stuff which the non-devs need) - even my manager does! (when you thought they were the last people to be adopting the comparatively harder-to-understand technology ...)
It just takes adjustment, but like many learning curves, it comes with a payoff that's simply hard to comprehend before you're there yourself.
In terms of hobby OS development, git/bzr/inherently decentralised systems come with another advantage: no having to set up a server and configuration hell associated with maybe-Apache or whatever it depends on. Just git init (bzr init), commit your initial stuff and start versioning!
My 2ยข