[darcs-users] CVS-style development with darcs

Juliusz Chroboczek jch at pps.jussieu.fr
Fri Jul 2 17:51:51 UTC 2004

> I think we're comparing apples to oranges here.

Yes, we are.  This was not about ``which is better, CVS or darcs''.
This was about ``okay, I've decided to work with darcs, how do I do X
in darcs''.

Comparing apples with oranges is perfectly reasonable when you've
decided to replace your apples with oranges.

> To date, I haven't used SVN, but I'd like to see a comparison, especially 
> in light of this document, on how darcs compares with SVN.

Svn is basically CVS with one flaw removed: commits are atomic.  It
doesn't fix CVS's other major flaw, the difficulty of merging multiple
times from the same branch.

Svn also introduces two major flaws of its own: ``svn co'' will
happily fill your disk with all the branches in existence if you're
not careful, and there's no way to manually fix /var/cvs (svn uses a
binary blob of a database instead of plain text files).

To be fair, svn has some nice features; for example, it has a
client-side ``current'' tree, which means that svn diff and svn revert
can be done offline.

I'd still take CVS over svn any day.

> > I think the right design is not to forbid individual flows, but to
> > have _darcs/level, an integer, and forbidding patches from flowing
> > from a lower-level to a higher-level repo (think water);

> But -1 is lower than 0 -- wouldn't that mean changes made to stable 
> wouldn't make it into development releases?

Sorry, I got them the other way around.

> In the case where you have precisely one waterfall of development,
> sure.  But if you have, say, three different waterfalls, all leading
> to the same stable tree,

Good point.  _darcs/level needs to be a sequence of integers, and
levels are compared pointwise.  (It can be proved that any finite
partial ordering can be embedded within this structure.)


More information about the darcs-users mailing list