OT: revision control [was: Re: autoconf and erlang]
Dustin Sallings
dustin@REDACTED
Wed May 12 21:57:39 CEST 2004
On May 12, 2004, at 11:23, Vlad Dumitrescu wrote:
> I've checked it and it is interesting, but it doesn't feel quite
> right. I
> think Subversion http://subversion.tigris.org might be better, not the
> least
> because the commands are almost like CVS. The drawback is that there
> are no
> sites yet that host Subversion servers for free.
Please don't do this. I think decentralization is important for open
source projects. The centralized model makes it too difficult for
individuals to maintain their own trees, manage changes against head of
line, and creates a scaling problem when projects become more popular.
Choosing a solution just because it's most like the one many people
have been using for a long time is a bad idea. There are lots of
distributed revision control systems available these days that go way
beyond solving small problems in CVS structure and provide features
that fit very naturally into an open source development environment
where contributors from all over the world have varying quality of
connectivity. And honestly, most of the time all you're doing is
editing files and committing changes, maybe pulling in changes from a
source repository, right?
I use arch for almost all of my projects. Branching is so easy there,
anyone can understand it with little effort and it's become the normal
mechanism for contributing to other people's projects. I have private
branches of several applications I'm tracking and all that's required
from my upstream is a vanilla http server to which the head of line
commits are published. More importantly, the repository is made up of
plain files (in tar files) that are immutable and easy to parse without
having any arch tools to check out a tree. Makes replication a snap
since the tree structure isn't changing (with the exception of a lock
that gets passed around on the write tree).
Darcs is a very nice set of improvements in some areas of arch
(although I believe it's missing in a few others that I use). In
particular, you can basically use a mailing list to track changes to a
tree. It's possible to branch a project, track head of line, make
changes and send them back without even having an internet connection.
The repository is made up of pretty plain files again. (I've not used
this one enough since I couldn't get it compiled at the time I ended up
using arch for everything)
monotone is another example, although one I haven't personally tried
yet. The docs look pretty good, though. The one thing that makes me a
bit weary of this one is that the repository is a mutable opaque store
(like subversion).
The fact that a server is required for subversion means you're going
to have the same scalability issues sourceforge has if a project gets
popular. The central servers gets too busy and it gets slow to submit
changes or check stuff out or whatever. The fact that you can't find a
site to host your project on subversion also suggests it might be a bad
choice. I have several sites hosting my arch repositories (stock OS X
apache, NetBSD custom Apache install, thttpd, whatever 1and1 provides
for their cheap hosting solution) and all they know is I've got files
sitting in my web space. No special apache modules (which would have
to be ported to yaws, of course), no cgis, just the files that make up
my dev trees.
--
Dustin Sallings
More information about the erlang-questions
mailing list