Paul Duvall “Continuous Integration”

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:

Dave Dribin: “Choosing a Distributed Version Control System”

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.

SCM systems comparison: a better frontend

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.

AccuRev streams vs branches

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”.

Karl Fogel: “Subversion’s Delta Editor: Interface as Ontology”

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”.

Robin Luckey: “The World’s Oldest Source Code Repositories”

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”.

Ben Collins-Sussman & Brian W. Fitzpatrick: “Subversion Worst Practices”

October 12th, 2007

Short talk on Subversion misuse: “Subversion Worst Practices”.

Karl Fogel, Ben Collins-Sussman, on distributed version control

October 11th, 2007

Important opinions from Subversion developers:

Karl Fogel: “Subversion, decentralized version control, and the future”

Ben Collins-Sussman: “The Risks of Distributed Version Control”

Tim O’Reilly: Why Congress Needs a Version Control System

October 7th, 2007

Tim O’Reilly, together with Karl Fogel, discussed the idea of version control for U. S. Congress.

It turns out that Tasmania seems to have implemented something similar, as described in article by Timothy Arnold-Moore “XML for legislation drafting, management and Web delivery—How structured document representation facilitates automatic processing”, published in Novemeber 1998 (found via Bex Huff).

We have already covered similar topic back in March: Slashdot: Source Control for Bills in Congress.

Mark Shuttleworth on renaming and merging

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.