waving android

I am currently a software engineer at Google, where as a member of the Android platform team I build frameworks and user interfaces.

The blog here at is mostly historical; you can find more recent posts on .

source control.

July 24th, 2004


Dave: “GNU Arch is
idiotic.
It’s a deranged developer’s wet dream
about how revision control should work. Sure, it permits distributed
development. But it does not need to be this complex.”

I write about source control here from time to time (also known as “version control” or “code control” or, as the suits call it,
SCM—“System Configuration Management” or something equally
obtuse). A trip through the archives yields some tidbits:

  • 05-Jun-2004:
    Monolithic clients for Subversion. I maintain that
    the sheer volume of arcane library dependencies required to
    attain a functioning svn installation is a
    huge roadblock to adoption. (Windows users have it
    easy; they can use TortoiseSVN, a Windows
    shell extension that truly rocks all over. I’ve mentioned the
    CVS version here before.)

  • 05-Jun-2004. “Martin Pool: ‘I
    like thinking and writing about version control because it has
    an interesting mix of technical problems and human/social
    problems…’”
  • 23-Feb-2004.
    p4 vs. svn;
    everything
    vs. everything else
    .
  • 06-Feb-2004. All about
    darcs, in which patches are “analogous to the
    operators of quantum mechanics.”

I’ve been partial to Perforce
since I started using it at Be (where they switched from CVS to p4 once
the source tree—and engineering department—increased beyond a
certain size where CVS is acceptable). P4 Just Works, almost always The
Way You Expect It To. Commits are bundled into atomic
changelists which have a (single) accompanying change note;
the local file tree is not fragile (woe betide the owner of a moved
directory in CVS/SVN!); branch integration is handled (almost always)
intelligently; the client install is a breeze, and the server
install isn’t much harder; Mac resource forks are handled sensibly
(these days); the list goes on. Of course, it’s a commercial product
with a hefty license, so you won’t see individuals or universities using
it any time soon. (They do have a special open-source license, but there
are some hoops.) So individuals are left with a few choices: cvs (or
svn, a cvs with some old problems solved and replaced by new ones), arch
(amazingly complex, from the very first step, when you discover that the
command-line tool is named “tla”!), and a bunch of other also-rans.

Is there anyone out there who’s found something he likes, that he can
reasonably recommend to a friend without feeling the guilt of having
damned that friend to days and days of thumbing through the manual?
Anyone?

Update: Joe reminds me about
Perforce’s educational
licensing
. “It seems a little expensive, [$3500/year, no per-seat
cost. —dan] but
something a department could probably afford if it were to want to
actually keep everything that people are working on, even after they
leave.”

newer: older: