What I Hate About Git
Number 1-5 are mostly "I don't want to learn new things", so I'll ignore them.  Do you remember when you learned source control for the first time?  I don't, it was too long ago.  Just like you have to learn SVN if you've never used source control before, you have to learn Git if you've never used distributed source control before.<p>* "Unsafe version control", and then gives examples using -f or +<refspec>, both of which advertise their destructive nature.  Yes, you can also go in with SVN and obliterate history too, using svnadmin dump and svnadmin load.  Git's reflog will have your back when you make mistakes, as long as the mistakes don't get too old.<p>* "Power for the maintainer, at the expense of the contributor" Yes, most people write code on one branch for a long period of time.  Git does this just fine.<p>* "Burden of VCS maintainance pushed to contributors" First of all, nobody says that contributors have to merge.  That is a decision that each project makes.  Plenty of projects have the lead developers merging in everyone else's work.  Second, the reason this is even an issue is because merging is such a pain in SVN that most people don't want to do it.<p>* "Git history is a bunch of lies" Again, this is up to the individual project.  Some developers like to work on six different things at the same time, and then they go back and rewrite history so that their six changes end up as six commits.  The difference with SVN, is that these same developers would simply avoid committing until they're done with all six changes.  Some projects expect rebased patches, some prefer proper merges.  Worse, the author says that "filtering" should solve this problem, but doesn't propose how such a filter would work.<p>* Complexity of simple tasks: Let's try not to artificially inflate the complexity of the Git tasks.  For example, the Git examples assume no commit access, whereas the SVN examples assume direct commit access.  If you don't have commit access to an SVN project, how do you do it?  You either use git-svn and mail them a patch, or you use svn and mail them a patch.<p>A recurring complaint seems to be that "git add" is not the same as "svn add".  I don't see why it would be.  It's not the same as "ssh-add" or "useradd" either.