You are on page 1of 11

Software Development and Version Control

Systems
- Emphasis on Distributed -

By Jari Aalto

[SLIDE NOTES]
Notes to the slide: Version Control Software
Timelines
The initial years of existence: There graph focuses on those, which are largely known to be used by FOSS
projects. E.g. Comemrcial Perforce software was previously used to develop the Perl language. Some of the
"big player" commercial Version Control System include Synergy/CM, but they are not used by FOSS
projects.
• 1982 RCS, according to the the rcs(1) manual page's copyright year.
• 1986/90 CVS, according to book "Open Source Development With CVS" by Karl Fogel, (Coriolis OpenPress 1999),
page 7: "[CVS] started as a collection of scripts written by Dick Grune in 1986 ... and were posted to the Usenet
newsgroup comp.sources.unix. (...) Finally in the early 1990, Jim Kingdon made CVS network-aware."
• 1992 Clearcase, according to Wikipedia at http://en.wikipedia.org/wiki/ClearCase
• 1994 Perforce, according to company founding information at http://www.perforce.com/perforce/corp.html
• 1998 BitKeeper, according to BitMover Co.'s press release 2005-04-05 "Founded in 1998, BitMover Inc. is a privately
held Silicon Valley-based company that produces BitKeeper" at http://www.bitkeeper.com/press/2005-04-05.html
• 2001 Arch, according to Tom Lord's resume and paragraph "The GNU Arch revision control system Founder and
maintainer" at http://gnuarch.org/resume.html
• 2001 Subversion, according Chapter 1. introduction / Subversion's History: "After fourteen months of coding, Subversion
became 'self-hosting' on August 31, 2001." at http://svnbook.red-bean.com/en/1.1/ch01s02.html
• 2002 Darcs, according to first version log Sun Oct 20 17:01:05 PDT 2002 titled "Initial version of darcs" at Darcs
repository http://darcs.net/cgi-bin/darcs.cgi/stable/Add.lhs?c=patches
• 2003 Monotone, according to filestamps inside archive monotone-0.1.tar.gz at http://monotone.ca/downloads/0.1/

© Jari Aalto 2
Notes to the slide: Free Version Control Hosting

Sourceforge.net: There is no opening announcement at the site, but the year is mentioned in 2001-01-04
published Linux.com article "SourceForge.net supports 100,000 developers in first year of service"

Savannah.gnu.org: There is no opening announcement at the site. The year is based on the first post at the
site.

Berlios.de: The founding information is not to be found from the main site, but the opening year 2001 is
mentioned in EU document "Study into the use of Open SourceSoftware in the Public Sector / Part 2".

Code.google.com: There is no opening announcement at the site, but the year is mentioned in 2006-07-27
Linux.com article "Google announces hosting for open source projects" by Joe 'Zonker' Brockmeier.

© Jari Aalto 3
Notes to the slide: DCVS Release Schedules

The initial dates of DVCS existence:

Git, according to archive's git-0.01.tar.bz2 timestamp at http://kernel.org/pub/software/scm/git/

Mercurial (Hg), according to arhive's mercurial-0.1.tar.bz2 timestamp at


http://www.selenic.com/mercurial/release/

Bazaar (Bzr), according to archive's bzr-0.0.0.69.tgz timestamp at http://bazaar-vcs.org/pkg/. See also


release notes that date back to 0.0.0.69 http://doc.bazaar-vcs.org/bzr.1.1/en/release-notes/NEWS.html

© Jari Aalto 4
Notes to the slide: Pace of Development (1-3/3)

The graphs explain number of things. See a prediction in slide "DVCS Popularity Estimates"

Both Git and Bzr projects are very active and move rapidly forward release by release.
Hg, while relatively popular, does not have comparable development power. This can also be seen from the
release schedules.

© Jari Aalto 5
Notes to the slide: DVCS and FOSS projects (2/2)

[Current bars] The relative differences are based on the big projects' that are actively deploying the
mentioned DVCSs. The Nokia QT and Linux kernel projects alone explains in part the height of the Git
series graphs.
[Estimated bars] The expected growth estimates (grey area at the background) are speculational. Their
predictions are based on on the traffic appearing in the development mailing lists, the indicated intrest
towards the DCVSs in various forums and the deployment of the tools that the writer has observed e.g. in
Debian project.
• http://wiki.debian.org/Alioth/Bzr
• http://wiki.debian.org/Alioth/Git
• http://wiki.debian.org/Alioth/Hg

About Bzr's predicted growth in the future
The estimated greater growth will probably be based on the success of the Ubuntu Linux (cf. Wikipedia)
and the Financial backing of the Bazaar project by Cacnonical (cf. Wikipedia).
The integrated Launchpad.net platform will probably substitute the Sourceforge.net in time and will further
contribute to the Bazaar's popularity and growth.
In addition, Bzr was made official GNU project in 2008.
(In 2007 Cacnonical started offerering Personal Packaging Services for individuals in Launchpad.net which
indicates rival to Sourceforge.net's hosting services). © Jari Aalto 6
Notes to the slide: State of DVCS: Performance

The times should therefore not to be considered absolute.

The times are comparable to each other and will show the relative differences between the programs.

© Jari Aalto 7
Notes to the slide: VCS Space Requirements

Bzr

The newer Bzr versions have had many underlying storage model changes and this shows in
the space savings.

Git

It would be possible to run ”git gc” (garbage collect) with various options to shrink a
repository, but it's difficult to tell which combination of options should be used to a particular
repository considering its usage. The needed options would be different for each type of use of
the repository. In this regard optimizing Git repositories a black magic art.

© Jari Aalto 8
Notes to the slide: Scope of DVCS Projects

Notes about Git

• The community is lively and active, consistíng of many hard-core hackers – and somewhat constitutes
inside circle.
• The process how Git is steered is not necessarily transparent to the outsiders.
• The lack of bug tracker, non-existence of formal bug reporting procedures, lack of recording feature
requests etc. Hinder moving git towards regular end-users. Many of the features are also highly
execotic, and won't be needed by the average 80%.
• In order to bring Git to a wider audience, it would need to start using project steering tools like a bug or
issue tracker. The reader is encouraged to study Ben Collins-Sussman's article which explains reasons
why Svn project, although centralized, become very popular.

© Jari Aalto 9
Notes to the slide: Weaknesses of DVCS

Notes about Git

The Git was not initially meant to be user friendly. It started as collectiong of scripts called "plumbing" that
offered a nirvana of control for the deep waters of distributed version control.

The very confusing UI is resulted by adding feature by feature on top of other features and not necessarily
thinking the Git as a whole; thoroughly. The command line handling is like "gum" paches inside the code.
An example:
You cannot use the options like in standard Unix/Linux System.
E.g. Options -a -m cannot be combined to -am etc.
E.g. Not all commands offer --long options.

In Git development list, there are signs of resistance to bring standard GNU C ibrary (getopt) that includes
uniform option handling capabilities. The voices have argued that getopt would bring "unnecessary
dependency" and "bloat" to the Git. Nevertheless, a standard option handling interface would offer solution
to the majority of problems in current command line UI handling.

© Jari Aalto 10
© Jari Aalto 11

You might also like