3 ms·
Here is how I (try) and explain it to my coworkers when they say "svn branches as well". You are right. Svn can branch. Can. But branching in svn is always
by ecoffey 17y ago
Here is how I (try) and explain it to my coworkers when they say "svn branches as well".
You are right. Svn can branch. Can. But branching in svn is always a dangerous proposition. There are a lot of mechanics involved with branching it right initially, making sure that branch is properly tracking Trunk (you have to constantly merge from Trunk down into the branch to hedge the bets on eventually merging that branch back into Trunk). Properly merging a big branch into Trunk is also an undertaking, and more importantly, it requires the whole team to know its happening and "Be careful checking stuff in for I AM MERGING".
Also branches in svn aren't private. Anyone can see them. They are private by convention sure.
So compare all that workflow with a DVCS. The branching is free. It happens all the time and you never notice it. The merging is smarter, because it has to be, and the history is more complete, because it has to be to enable the merging.
When you do consciously branch it's a quicker, more robust operation. Doing big scary feature branch merges isn't as scary since they're happening privately before you push back to the (culturally defined) central repo. Yes you still have to merge from "trunk" to branch in DVCS but, again, it's a baked in feature since thats how you pull changes from someone else (for example in git you fetch changes from the central repo into remotes/master and then merge them into your master. Same operation as merging master into feature branch, or branch into master).
Yes you can walk to San Francisco from New York. But you can also Fly.
That's the end of my rant. Obviously it's based on my experiences with these tools and not yours. Just trying to give some context and justification.