[darcs-users] multiple heads

Keith Browne tuxedo at htq.org
Mon Mar 31 03:25:32 UTC 2008


Declan Naughton wrote:

> Ok. I can see how Darcs is brilliant (the best) for keeping track of
> changes, but on what planet would we not like our RCS to provide a
> history of previous versions?

Revision control tools from the history-of-previous-versions school 
force you to work with your repository as a linear, directed sequence of 
changes.  When several developers are working independently, this forces 
you to create new intermediate versions for no reason other than to 
handle the merging of those changes (in some arbitrary order) into the 
head.  With Darcs, patches can be handled in more than one order, so 
there's more than one potential history.

If you want to see how a given repository looks in the absence of the 
last N patches, you can do it with Darcs by cherry-picking the patches 
you want in, or by reversing the ones you want excluded.  You're not 
restricted to just the last N patches, though; you can select a change 
set which excludes any patch or patches you want.  That lets you build 
whichever snapshot or snapshots you want on the fly.

Viewing a project as a sequence of snapshots is an artifact of working 
in a non-distributed fashion.  In the distributed case, many patches can 
be written independently.  There's no one canonical way to order those 
patches so as to make up a single, linear history which didn't exist in 
the first place.  Tools like CVS force you to construct a fake history, 
but Darcs doesn't.

Keith Browne
tuxedo at htq.org


More information about the darcs-users mailing list