Why Subversion Still Beats Git (via abcphp.com)
brandonsavage.net
brandonsavage.net
Corporate America needs a centralized version control system.
This is either a statement of fact or a thesis. If it's a fact, then the argument is circular. Subversion still offers this: Subversion centralizes the repository and simply checks out a working copy (versus Git, which gives you a complete repository).
This is not an argument at all, but a description of how Subversion works versus Git. Corporate America still needs to have cannonical version numbers
The version numbers in Git are fundamentally canonical. There is a possibility of hash collision, of course, but that's not a real concern of anyone. If the Kernel can work with hash numbers and not have collision issues, then a large corporate product can too. If the argument were that the version numbers must be incremental, I might accept that, but I would like an explanation as to why. ability to see the progress of a product over time as a single line - not a bunch of branches and independent repositories
This is a workflow issue, not a problem with git.Fundamentally, I see corporate objections to git entirely as a lack of established workflows and repo server management tools. Gitosis is nice, but I don't believe it allows for the central control that IT managers want. Also, people have not written O'Reilley books about how to manage a git server in a corporate, centrally controlled environment.
I don't even understand that argument. To me, git feels EXTREMELY enterprisey. You can't USE the tool without defining a workflow, even on a simple project. That to me screams "bureaucratic control wet dream".
Git lacks in the tools department on windows, and in the ability to make "workflow specific gui's" to operate on it. Fix that, and Git wins for 90% of cases vs SVN.
Git is scary at first, but after you use it in the correct configuration for your task, you're like "oh, another tool, one that works pretty well" and you move on. I still feel dude hasn't seen the correct configuration for his task and want to point him at the configuration design bubbles in progit.
While I think I understand what he is saying, there isn't any reason why Git can't be used just like SVN (other than checking out only the latest version, which I wouldn't argue is an advantage). Just because you can branch and merge easily in Git doesn't mean that you have to.
Edited to add the following:
There are some valid reasons for not using Git over SVN, but I find it pretty hard to believe that better branching/merging, offline repo access, and version numbers are among them.
Moving on from something which is already in place and taking care of existing needs, or better GUI tools (in "Corporate Americal" anyway) are certainly valid.
Corporate America still needs to [...] see the progress of a product over time as a single line – not a bunch of branches...
"Corporate America", insofar as it is a singular monolithic entity with no cultural difference, should realize that their product IS the result of "a bunch of branches", and that git, over subversion, is a tool to help people work more efficiently because it realizes this, and helps you manage them. It changes version control from an annoying thing that you have to deal with, to a tool that helps me not worry about various details of version control, but instead deal with the problem at hand - the product. The sheer existence of git-stash sold me, and while I'm handy enough to use "svn diff > changes.patch" with "patch < changes.patch", git just is generally a better tool for that.The biggest benefit of git, over svn, I'd argue is actually branch merging and merge conflict-resolution capabilities. Subversion 1.6, however, is supposed to take leaps and bounds to catching up to git (vs. the 1.4 server install I currently work with). The version numbers in git are less intuitive than svn, but I feel thats okay, because tagging is useful in git. The real win for git, is that git works with you and your workflow, and doesn't impose as much workflow as subversion does.
( git-svn absolutely your friend. )
Git is not a source control system. Git is a tool that allows a company to define near ANY source control system. It corporate america's dream tool once they figure out they can have anything with git.
This just sounds like a guy who can't handle branches and uses arguments about a system which requires them instead of learning how to do branches.
It's also presumably good for companies that, like subversion, it's centralized. But it doesn't have any terribly significant feature improvements over svn, otherwise. The interface is slightly slicker, and the merge works marginally better.