Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>There's nothing in particular in DVCSs that makes merging easier. It's simply cultural: a DVCS <em>wouldn't work at all</em> if merging were hard, so DVCS developers invest a lot of time and effort into making merging easy. CVCS users OTOH are used to crappy merging, so there's no incentive for the developers to make it work. (Why make something good when your users pay you equally well for something crap?)</p> <p>Linus Torvalds said in one of his Git talks that when he was using CVS at Transmeta, they set aside <em>an entire week</em> during a development cycle for merging. And everybody just accepted this as the normal state of affairs. Nowadays, during a merge window, Linus does hundreds of merges within just a few hours.</p> <p>CVCSs could have just as good merging capabilities as DVCSs, if CVCS users simply went to their vendors and said that this crap is unacceptable. But they are caught in the Blub paradox: they simply <em>don't know</em> that it is unacceptable, because they have never <em>seen</em> a working merge system. They don't know that there is something better out there.</p> <p>And when they <em>do</em> try out a DVCS, they magically attribute all the goodness to the "D" part.</p> <p>Theoretically, due to the centralized nature, a CVCS should have <em>better</em> merge capabilities, because they have a global view of the <em>entire</em> history, unlike DVCS were every repository only has a tiny fragment.</p> <p>To recap: the <em>whole point</em> of a DVCS is to have many decentralized repositories and constantly merge changes back and forth. Without good merging, a DVCS simply is useless. A CVCS however, can still survive with crappy merging, especially if the vendor can condition its users to avoid branching.</p> <p>So, just like with everything else in software engineering, it's a matter of effort.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload