Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is branching in SVN not good enough?

Tags:

branch

svn

I've heard so much about how Git has redesigned how branching works, and how SVN's branching model is screwed up.

I've not used much SVN, so I have no preconceptions about what a branch should look like. I first looked at git branches, and I "get" it.

What are the practical drawbacks of SVN branches?

Answers from the POV of workflow, branching strategy and branch performance (in terms of commit/checkout/switch times) encouraged.

Thanks, jrh

like image 834
jrharshath Avatar asked Dec 01 '10 07:12

jrharshath


People also ask

Can you branch in SVN?

A SVN branch copies the trunk and allows you to make changes. When the new feature is stable, the branch is merged back. Here's a basic step-by-step overview of SVN branching and merging. Create a branch using the svn copy command.

What is the point of branching?

Branching is used in version control and software management to maintain stability while isolated changes are made to code. Branching facilitates the development of bug fixes, the addition of new capabilities and the integration of new versions after they have been tested in isolation.

How do I branch in Tortoise SVN?

Creating a Branch or TagSelect the folder in your working copy which you want to copy to a branch or tag, then select the command TortoiseSVN → Branch/Tag....


1 Answers

A few things come to mind

  1. All the branches are stored in the central repository. If you're not connected to that server, or your connection to it is slow, then you can't access them quickly.
  2. All the branches are stored in the central repository. This means they're public -- anyone on the team can view them. There's no way to keep a private branch that no one else has access to.
  3. The DAG of commits itself contains enough information so that you can figure out which changes are included in your current version of the code, including changes from any number of branches. In svn, IIRC, this is done using an svn:mergeinfo property, which is more complicated IMHO, and is error-prone because someone might forget to commit the changed property.
like image 148
Tyler Avatar answered Oct 01 '22 12:10

Tyler