New Source Code Management Systems

[email protected] (David D. Smith)
Newsgroups gmane.org.user-groups.linux.morlug
Organization Only myself
Message-ID <[email protected]>
 "Michael" == Michael Bond <[email protected]> writes:

  Michael> Perhaps you could outline the advantages of darcs for the
  Michael> group.  If anyone else has another system that they enjoy
  Michael> using, please let us know. The only revision control system
  Michael> that i really know is CVS, which is a beast to use but
  Michael> time-tested and proven.

OK, I can't speak for everyone, but here are the things I want in my
SCM, not in any order:

(0) Freedom: Must be Free Software Compatible. This is always a
    requirement for me.

(1) Disconnected: I don't want to have to have a server; i.e. I want
    to be able to work disconnected and also be able to have a central
    place for other developers to share.

(2) Independence: I want to use the same SCM as the developers of a
    given program to work on my modifications without being an
    official developer.

(3) Integration: I want it to integrate really well with my work-flow,
    esp. my IDE.

(4) Simple: I want it to have an easily understandable mental
    model. Note, I don't care so much about difficulties at the
    command line because I expect (3).

(5) Unification: When I merge between branches, I want to easily pick
    and choose particular changes.

All of the SCMs in question pass (0), so that's no big deal. CVS
sucks. Arguments for this on the web are abundant. Just start reading
about any of Subversion, Arch, or Darcs, and they'll tell you all
about what's wrong with CVS.

Subversion does great for (3) and (4), but it's not so good at the
others.

Arch is great for all of the above except (4): it's needlessly hard to
understand.

Darcs satisfies all of the above very nicely. It really shines at
(4). It's just as good as Arch for (1), (2). I think it is even better
at (5) because of it's patch theory approach, which allows it to not
only think in terms of changesets (atomic collections of patches) but
to find dependencies between changes automatically, allowing automated
cherry-picking instead of the Arch approach that requires either a
human to know what patches should be merged.

Darcs's main problems are that it is younger than Subversion or Arch,
and it is written in Haskell which I applaud for choosing a language
that suits the problem well, but because of it not being a popular
language, it is harder to find people who can work on the
software. Then again, though, Paul Graham argues very convincingly
that uses the right language for the job is a better approach than
following the pack over the cliff.

It should be noted that in several documents on the web, moving from a
centralized system like CVS or Subversion to a decentralized system
like Arch or Darcs shifts the problem of integration away from the
software (repository) and onto the developers. This is false. A
decentralized system can trivially be used the same way as a
centralized system with the added benefits that it provides for (1),
(2), and (5) generally better.

Anyway, you should give them all a try, but if you don't have time for
that, I'm fairly certain you try out and understand Darcs in about
five minutes. It really simplifies the whole mess.
-- 
  David D. Smith
A man without doubt is a monster.

_______________________________________________
Morlug mailing list
[email protected]
http://mailman.morlug.org/mailman/listinfo/morlug
signature.asc (application/pgp-signature, 188 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)

iD8DBQBCTNNdEJGOueZRHH4RAt5fAKCt7AaKM1FZ1t8j6Txtylfb4Y+nYgCfV08T
qGMUktYcpFcvzM9AXWtDHqM=
=lnbF
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.