I’m new to versioning systems and trying to decide which one to use. There are lots of information, but maybe someone expert can already help me by answering the following question. I’ve found a versioning/branching model which quite closely resembles my requirements:
http://nvie.com/posts/a-successful-git-branching-model/
Could I theoretically realize this just as easily with SVN? Like the Hotfix and Bugfix branch which each merge into multiple different branches? And why is “merging” supposed to be easier with Git anyway?
The workflow you’ve linked to is recommended in quite a few StackOverflow answers. Generally speaking, though, the main idea is to keep the “good code” and the “development code” separate –
masteranddevelopmentbranches. In addition, keep features separate until they’re ready to be merged into thedevelopmentbranch – that’s thefeaturesandhotfixbranches.I have no doubts that that workflow, or one very similar, is entirely possible with SVN – you’d use SVN Branches.
There’s a whole bunch of revision control systems around, and the Nvie Git workflow is pretty generic – the general workflow could probably be utilized in most revision control systems.
Personally, I don’t think branching in SVN is as easy as it is in Git. Linus Torvalds agrees — and so he designed Git around the idea of branching.
Git is designed around the idea of branching. Making branches, using branches, merging two branches together, merging three branches together, merging branches from local and remote repositories together – Git is good at branches. SVN isn’t branch-centric, and in my (limited) SVN experience, merging two branches together isn’t always fun.
If you’re just starting out with a version control system, I’d recommend Git. For a decent comparison between Git and SVN, check this link. I would note, however, that Git is a little bit of a brain-bender, especially if you’re new to it – conceptually, SVN is far easier to understand. I found the Pro Git book extremely helpful.