Reputation: 12687
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?
Upvotes: 2
Views: 2460
Reputation: 8958
Subversion has an advantage that you always know if particular branch/trunk at a particular revision is merged to your branch (by svn:mergeinfo), that's important in the case of cherry-picking commits. Git provides merge tools that are reputed to work better.
You may install SubGit (subgit.com) into your SVN repository and have advantages of both approaches. After installation SubGit created a Git repository that is linked to that SVN repository such that any push to that Git repository is translated to SVN and vice versa. The conversion is performed on-the-fly.
Upvotes: 1
Reputation: 4682
Theoretically - yes, SVN can realize it. But SVN has lack and poor of merging and branching tools. So merging/branching with SVN is a bit inconvenient and scary (main problem - complicated tree and other conflicts).
GIT is a master of merging branches - he can solve extremely hard conflicts. Also it lets you to easily track all branches versions.
Main difference between SVN and GIT:
To understand the comparison take a look to this article
Upvotes: 2
Reputation: 72527
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 - master
and development
branches. In addition, keep features separate until they're ready to be merged into the development
branch - that's the features
and hotfix
branches.
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.
Could I theoretically realize this just as easily with SVN? Like the Hotfix and Bugfix branch which each merge into multiple different branches?
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.
And why is "merging" supposed to be easier with Git anyway?
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.
Upvotes: 5
Reputation: 16605
From the link you've provided:
From the classic CVS/Subversion world I came from, merging/branching has always been considered a bit scary (“beware of merge conflicts, they bite you!”) and something you only do every once in a while.
But with Git, these actions are extremely cheap and simple, and they are considered one of the core parts of your daily workflow, really.
I subscribe to that statement as far as SVN is concerned (I do not have real working GIT experience). In SVN merging is time-consuming and, frankly, scary. You do not branch lightly. So, I guess, the answer is "no" - do not use SVN if you know in advance that you'd have to do a lot of branching and merging.
Upvotes: 3