I mean, I taught my boss at work how to use SVN in like 5 minutes. "right click and do `svn update` when you want to pull down the latest changes. right click and do `svn commit` when you want to save your changes to the repo."
Whilst some Windows GUI someone made as a wrapper for SVN itself isn't actually a valid argument for SVN, I should probably mention that an application called "git-gui" exists which allows you to do most complex git actions with a simple point-and-click interface. Works on Linux and Windows, too.
Are you saying that Git *should* be so complicated that you must read the man page to even understand how to get the source code through a web interface!?
No, he's saying that maybe some software
is complicated enough that you absolutely must read the man page to understand how to use it. Not every program in the world must be 110% intuitive from the second you pick it up. If you think that way, then you are setting yourself up to fail. I also just found "
man gittutorial," so it's not like the documentation isn't there or anything.
I regularly see the bot post the commit logs, yet I never saw the problems mentioned
My most distinct memory in svn was conflict hell: early on in the project we'd be working on similar areas of the kernel and constantly stepping into what everyone else was working on. git's rebase does a better job of merging in this situation (there are still cases where it fails, such as where indentation completely changes style). That said, a single developer project won't really need to worry about conflict resolution (in more ways than just their SCM
), but I always think it's better to plan ahead and make choices early that benefit developers that might join the project later. After all, that's why we document and comment code, isn't it? Why not plan our SCM in the same way?
I come from the git crowd simply because git is an SCM which can manage my project efficiently, fits our workflow
perfectly, and supports a variety of features which make my life as a developer easier. It's also handy that each developer has an entire repository checked out, as it means we can rebuild our remote repository if something goes really wrong (and it has gone wrong, multiple times).
Others come from the SVN crowd. I honestly don't blame them. SVN is very nice to use when you don't need/want to use the advanced features of git (and if you ever change your mind, git-svn exists). I personally used SVN for everything before I learnt about git.
I notice nobody has brought up CVS... Clearly nobody actually likes it (and for good reason)
Either way, an SCM is, like a code license or style, a fairly personal, project-specific choice. I think we could go on for days and days fighting to see one come out on top, but it's not going to happen in a community like this. Maybe we can agree to disagree?