[darcs-users] CVS-style development with darcs
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
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