February 14th, 2008


Continuous Integration was popularized by Martin Fowler and Kent Beck. It is so tightly integrated with version control system (”Maintain a Single Source Repository”, “Everyone Commits Every Day”, “Don’t Commit Broken Code” are basic practices of CI), that it clearly deserves mentioning here. Martin Fowler wrote an overview article: “Continuous Integration”.
“Continuous Integration: Improving Software Quality and Reducing Risk”
is the book by Paul Duvall which was published in Martin Fowler signature series. You may find sample chapters online:
Posted in Books | No Comments »
February 10th, 2008
Dave Dribin wrote a couple of posts on choosing between the usual suspects: Mercurial, Bazaar and Git. Well-written, recommended.
Read at: Choosing a Distributed Version Control System; follow-up: Why I Chose Mercurial.
Posted in GIT, Mercurial, SCM tools comparison, Bazaar/bzr | No Comments »
January 26th, 2008
We’ve reorganized the information from the famous Better SCM: Comparison project, and presented it in a more useful way.
Announcing: Version control systems comparison 2.0.
You may compare any number of systems against each other. See for example:
TODO: add (at least) Git, PlasticSCM and Microsoft TFS information to the original Better SCM database and re-import it here. Stay tuned for updates.
Posted in SCM features and concepts, SCM tools comparison | No Comments »
January 14th, 2008
Damon Poole (CTO of AccuRev) wrote a teaser post in
AccuRev blog about AccuRev streams:
Damon Poole: “Streams vs Branches”.
This article links to a whitepaper: Damon Poole: “Stream-based architecture for SCM.
As far as I understood from the first reading, idea of streams is very straightforward and simple concept making “streams of development” a first-class object in AccuRev repository. Streams are very easily presented on UI level, making them easily understood for software developer and release manager. Branches, tags, and private workspaces could be superseded by various flavors of streams.
E.g. “Release 4.0″ is a stream. “Release 4.0.1″ is the child stream. Changes made in 4.0.1 could be “promoted” to 4.0. When we start the “5.0″ line of development, it automatically gets everything that was promoted to 4.0, either from older version or from bug-fix version (4.0.x).
I understand that streams could be enormously useful if they actually do the merging well. Technically this is handled easily by modern standards. Something like this could be done (and may be is already done) in many GUI clients for most open source version control systems.
Second part of the whitepaper is dedicated to AccuRev TimeSafe, which is the underlying repository format. I have to remark that the article only compares TimeSafe features with CVS and ClearCase repository features. Those are embarrasingly easy targets for criticism. Why are modern repository formats such as Subversion FSFS and Git not mentioned? Are they technically superior? ;)
Article on Timesafe: Damon B. Poole “The Timesafe Property - A Formal Statement of Immutability in CM”.
See also: DaveOnSCM: “Agile: Branches vs. Streams”.
Posted in branching and merging, SCM features and concepts, SCM tools comparison, AccuRev | 2 Comments »
October 27th, 2007


Second chapter in O’Reilly book “Beautiful Code: Leading Programmers Explain How They Think”
was written by Karl Fogel, and is called “Subversion’s Delta Editor: Interface as Ontology”. Karl has put this chapter online under the free license.
Read this chapter online: rants.org: “Beautiful Code Chapter Now Online”.
Posted in Subversion, Books | No Comments »
October 18th, 2007
Robin Luckey of Ohloh.net gathered information on oldest public source code repositories. Top three are:
- BRL-CAD, started in April 1983;
- GNU Emacs, April 1985;
- GCC, the GNU Complier Collection, November 1988;
Read the article at Ohloh.net: “The World’s Oldest Source Code Repositories”.
Posted in Use cases | No Comments »
October 12th, 2007
Short talk on Subversion misuse: “Subversion Worst Practices”.
Posted in Subversion | 2 Comments »
October 7th, 2007
Mark Shuttleworth (of Thawte, Ubuntu, and Canonical fames) wrote four posts on rename tracking feature in version control systems, and its impact on merging as a social process.
Read at his blog:
Those posts caught a lot of attention back in June, but frankly it seems to me the issue is somewhat overrated (but nevertheless a recommended reading). Mark’s Canonical Ltd. supports the development of Bazaar. Bazaar has the discussed feature of merging with renames tracking. Git does not have it, but it has another argument in this discussion: huge merging traffic — Linux kernel development is all about merging, and the codebase is huge. So, I guess this feature is not that crucial: Linus is well-known by his uncompromising approach to tools.
Posted in branching and merging, Ideas, SCM features and concepts, Bazaar/bzr | No Comments »