Archive for the 'Use cases' Category

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

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

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

Sunday, 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.

Linus Torvalds: Re: clarification on git, central repositories and commit access lists

Monday, August 27th, 2007

Linus Torvalds, in a long excellent e-mail reply to KDE developer Adam Treat, writes about social and technical issues of decentralized version control systems, as applied to huge software projects like Linux and KDE.

Read at LWN.net: “Re: clarification on git, central repositories and commit access lists”.

Upgrading Drupal with Git

Thursday, August 2nd, 2007

Drupal development team has released Drupal 5.2 on July 26, 2007. It fixes two security vulnerabilities, so it is highly recommended that you upgrade as soon as possible. Many Drupal installations often contain extra Drupal modules, and almost always the also contain local customizations.

Question arises: how to upgrade your Drupal installations

  • timely,
  • safely,
  • with confidence that none of your local customizations are lost;
  • without need to remember each line that was edited and re-applying those edits to new version;
  • without need to drastically change your workflow (very little discipline is needed actually);

We show that Git solves those problems easily. (more…)

Mozilla: Version Control System Shootout Redux Redux

Sunday, June 24th, 2007
J. Paul Reed, a build engineer for Mozilla, writes an account on choosing the version control system for Mozilla development, instead of traditional CVS. The article is filled with digitally enhanced screenshots from Mortal Kombat II, illustrating the story. Mercurial is current favorite (but not the winner). Git, Mercurial, Bazaar, and Monotone were considered. Highlights:
  • Git is inappropriate for cross-platform projects due to its UNIX-centric nature; same goes for Monotone;
  • Mercurial had lots of initial troubles with import of Mozilla repository, which is huge and complicated;
  • Bazaar imports well, but extremely slowly: more than a month for trunk-only part of Mozilla repository;
Read at: Version Control System Shootout Redux Redux. See also: Mozilla Version Control System Requirements.

Worse Than Failure: “The Source Control Manager”

Tuesday, May 8th, 2007
If you thought that pre-commit hooks which validate the format of commit message are too strict — see a story about the ultimate commit strictness on our favourite Worse Than Failure. Notice also that this methods helps deal with potential merging conflicts. Worse Than Failure: “Source Control Manager”.

Source control system at Oracle (home-brew)

Wednesday, March 14th, 2007
Steve Hagan, Oracle VP of Development, was interviewed by ACM Queue in December 2003. He gives some details on source control system deployed at Oracle:
TW In terms of sharing files, obviously for developers and to a lesser extent for marketing types, there’s a need to do version control and configuration management. Do you do anything special because it’s distributed, or do you just attach file systems wherever they are in the world and use those for your backups? SH We should distinguish between the source-code management system and a document management system. We put quite a bit of work on the source-code management system. The reason is you have to have developers potentially sharing the same code module for possibly the same project, possibly overlapping projects that intersect within that code. So you need a significant amount of version control, and yet sharing capability, so that you can work on the code, know you have the right version, do your builds, your tests, etc. We used to be a [IBM Rational] ClearCase shop, and it didn’t scale to the thousands of people working on the same code and the number of different sites that we needed. So we have a homegrown distributed replicated source-management system that combines essential repository, which is based on the Oracle database, but then also implements a multi-version file system, replicated out to all the sites, using a much lighter-weight communication protocol and also lighter-weight storage. We actually have done quite a bit of evolving as we learned what communication bandwidth we need to support the level of development we’re doing with this number of developers and locations.
Can someone provide more details on that? How is it called internally? Is it still used, three years later? What’s the number of objects (lines of code, files, branches, releases, products) managed? Are there any plans to replace it with something new? Read the complete interview: ACM Queue: “A Conversation with Steve Hagan”. See also: ACM Queue: “Distributed Development Issue”.

Slashdot: Source Control for Bills in Congress?

Wednesday, March 14th, 2007
Slashdot contributor Grepya points to an article in Slate: Specter Detector. U.S. attorney scandal update: Who’s to blame for those alarming Patriot Act revisions? According to it,
The background: When Congress reauthorized the Patriot Act last year, it included little-noticed language that changed the way U.S. attorneys would be appointed if their predecessors were removed in the middle of their term. Under the old regime, interim U.S. attorneys needed to be confirmed by the Senate after 120 days. If they weren’t, federal district judges could select their replacement. The new language removed both judicial and congressional oversight of the interim U.S. attorneys, letting DOJ anoint them indefinitely. This served three important goals: consolidating presidential power, diminishing oversight, and ensuring that “interim” prosecutors had permanent jobs. On Feb. 6, when the Senate held hearings on the issue of prosecutorial independence, former judiciary committee Chairman Sen. Arlen Specter, R-Pa., proudly claimed to have been as clueless as the rest of us. Denying New York Democratic Sen. Charles Schumer’s claim that he or his staff had “slipped the new provision into the Patriot Act in the dead of night,” Specter asserted, “The first I found out about the change in the Patriot Act occurred a few weeks ago when Sen. [Dianne] Feinstein approached me on the floor.”
Grepya wonders:
Now, I write software for a large and complex system containing millions of lines of code and I know that nobody could slip a single line of code into my project without my knowledge. This is because everything that goes into the build goes into a source control system, and email notification is generated to interested parties. This is for a body of work that affects perhaps a few hundred thousand people at most (our company and the combined population of all our customer organizations). Shouldn’t the same process be applied to bills being debated in national legislatures that affect potentially hundreds of millions of people?”
This is really quite interesting potential application of version control practices. Related observation: in Russian legislation system amendments to the laws are written in a very peculiar language. Wording differences, insertions and deletions are expressed in a minimal possible way, with a string rationing of words. This of course makes the amendments almost unreadable, looking like old-style diff output. Minimal context and almost no rationale is usually provided, except for very vague preliminaries. This brings to memory the worst cases of log messages made by developers lacking attention to documenting changes. There is of course a number of commenting publications which explain the rationale beyond changes and the meaning of new laws, but they are not available immediately, and it’s hard to audit the amendment just by looking. Also, sometimes the law is not available immediately in a new wording, and you have to take the old text and make sure that you understand how several subsequent amendments influenced it. See for example the “Federal law on amending the Federal law “On science”" (in Russian). (via slashdot)

Brian Harry: Microsoft DevDiv Dogfood Statistics

Saturday, February 10th, 2007
For several months, Brian Harry has been telling a fascinating story of TFS deployment at Developer Division at Microsoft, with monthly statistics. It starts in May 2006, with a post “Deploying TFS in the Developer Division at Microsoft”. The numbers impress:
A single branch of our source code is over 600,000 files today. We are in the process of adding all of our test source to our branches (historically they have been in a separate repository). This will add more than 1,000,000 more files to each branch. By the time all is said and done, considering all of the branches we use, the TFS server will contain 100,000,000 files or more (no, that’s not a typo J). This will make it one of the (if not the) largest source code databases on the planet.
Huge scalability issues are to be expected when handling this amount of data. In “What we’ve learned” chapter Brian describes many problems they have met and solved. Brian also posts monthly statisitics on TFS usage: As of now, more than 1000 active users manage 77 million files in 514Gb of compressed storage. I guess substantial number of those files was not directly created by human beings, but nevertheless. This is important information, it shows that Visual SourceSafe story will not happen again, and the next Microsoft offering in that area will be very strong. (via Version Control Server Team Blog, which alas contains only a couple of posts).

Xaprb: “So you think your code is in version control?”

Tuesday, January 16th, 2007
Xaprb takes on agile approach to version control, warning about the possibility that some non-obvious objects could sometimes be erroneously left out of it. This advice sometimes goes to the extreme, such as putting your backups under version control, but it’s a good idea to keep versioned at least init scripts, scheduled tasks and configuration files, in addition to usual code.
This article is about how to find and safeguard all the hidden code you don’t know your business relies on.
Xaprb: “So you think your code is in version control?”