Intro to Distributed Version Control (Illustrated) | BetterExpla Traditional version control helps you backup, track and synchronize files. Distributed version control makes it easy to share changes. Done right, you can get the best of both worlds: simple merging and centralized releases. Distributed? What’s wrong with regular version control? Nothing — read a visual guide to version control if you want a quick refresher. Centralized VCS emerged from the 1970s, when programmers had thin clients and admired “big iron” mainframes (how can you not like a machine with a then-gluttonous 8 bits to a byte?). Centralized is simple, and what you’d first invent: a single place everyone can check in and check out. This model works for backup, undo and synchronization but isn’t great for merging and branching changes people make. Sure, merging is always “possible” in a centralized system, but it’s not easy: you often need to track the merge yourself to avoid making the same change twice. A Few Diagrams, Please Distributed Version Control Systems (DVCS) Core Concepts
Toward Saner Version Control Anyone who has worked on a software project with a team of people knows how difficult the coordination of efforts can be. Students of Fred Brooks' The Mythical Man Month, or people who understand it implicitly by virtue of their experiences in the work place, are well aware of this. Intelligence, quite simply, does not scale. The number of communication channels for a team grows with the square of the number of participants, and presumably the efficiency of such a team shrinks with a corresponding inverse relationship. Among these tools, a good source code management tool must reside on a developer's belt. CVS has long been maligned by proponents of commercial alternatives, but Subversion largely undermines any claims that proponents of such tools can make. For one thing, Subversion provides atomic commits. On a related note, revision numbers in Subversion are not done on a file by file basis. Another big gripe about CVS is the tedium of branching with it. That is all.
Better SCM Initiative Terms of Service; Didn't Read Git - Fast Version Control System Comments on Software Configuration Management (SCM) Systems Also available in Japanese by David A. WheelerApril 10, 2004; lightly revised May 18, 2005 This paper is getting increasingly obsolete, but I'm leaving it here because there are some broader principles noted here. Enjoy. With the release of Subversion 1.0, lots of people are discussing the pros and cons of various software configuration management (SCM) / version control systems available as open source software / Free Software (OSS/FS). In my opinion three OSS/FS SCM systems got the most discussion in April 2004: CVS, Subversion, and GNU Arch. CVS is extremely popular, and it does the job. Subversion Subversion (SVN) is a new system, intending to be a simple replacement of CVS. From a technology point-of-view you can definitely argue with some of subversion's decisions. In 2004 there were concerns by some about Subversion's use of db to store data (rather than the safer flat files), since in a few cases this can let things get "stuck". GNU Arch The user interface also has some problems.