[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Eric goes to lunch -- a decentralized-development user story

From: Eric S. Raymond <esr_at_snark.thyrsus.com>
Date: 2004-09-16 20:48:23 CEST

One of the best organizing ideas for thinking about software design
I've learned about in the last ten years is also one of the simplest,
It's designing by user stories -- laying out the things real users
want to do in real situations.

So I'm going to tell a user story about what I want to be able to do
with Subversion, and encourage you all to think about it as we
continue to discuss action diffs and history diffs and other
impedimenta. Everything in this story, other than one hypothetical
Subversion feature, is true. Think of it as science fiction.

                         Eric goes to lunch

Eric is working on a project called gpsd, a service daemon that
monitors a serial or USB port with a GPS attached to it and
republishes the results on a well-known TCP/IP port where multiple
applications can get at it without contending for the GPS port.

The gpsd project lives at berlios.de, a hosting site Eric chose
specifically because it offers Subversion. Most of the time Eric
writes code on his desktop machine. The desktop machine has a
broadband connection and can always reach berlios.de.

Sometimes Eric uses his laptop, which has wireless hardware. When he
is at home, it can talk to the 80211b access point in Eric's
basement, and also reach berlios.de.

Eric likes to eat lunch at a sandwich shop that's an easy bike trip
from his house. It's a good place, run by a couple of Greeks who
greet Eric by name and tend to put a little extra meat in his hoagies.
Eric often spends a leisurely early afternoon there, hacking on his laptop.

Alas, the nice little sandwich shop has no wireless. Before
Subversion had repository sync, Eric couldn't do commits while eating
lunch. This was frustrating; he had to litter his working directory
with copies of checkpoint files (in case a change turned out to be
bad) and defer commits until he got home.

Now things are better. Before bicycling to lunch, Eric ran a one-line
shellscript that uses rsync to update a local copy of the gpsd
repository on his laptop:

rsync http://svn.berlios.de/svnroot/gpsd ~/svn/gpsd/SVN

As he eats lunch, he does commits to that local repository. When he
gets within range of his wireless net again, he runs another one-line
shellscript from within his working-copy directory that does this:

svn sync http://svn.berlios.de/svnroot/gpsd

This ships all the commits he did over lunch to the repo in Germany.
Then he closes his laptop, sits down at his desk, and types "svn
update" at the keyboard of his desktop machine.

Seconds later, his desktop working copy is updated. Eric continues

		Eric S. Raymond
You need only reflect that one of the best ways to get yourself a
reputation as a dangerous citizen these days is to go about repeating
the very phrases which our founding fathers used in the great struggle
for independence.	-- Attributed to Charles Austin Beard (1874-1948)
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Sep 16 20:48:32 2004

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.