In message <[EMAIL PROTECTED]> on Mon, 16 May 2005 11:15:43 +0200, Johan 
Vromans <[EMAIL PROTECTED]> said:

jvromans> There have been several 'improvements' for SCCS/RCS/CVS, but
jvromans> none of them really survived. That's why I would be very
jvromans> careful selecting a non-mainstream SCM.

Oh, I entirely agree with you.  I've been monitoring the development
of SVN for quite a while.

Let's not forget that svn was far from mainstream not too long ago,
and it's one of the biggest reasons it gained such popularity is
because it's riding on CVS' broad user base, simply with the
connecting message "SVN is CVS but better".  Any SCM will start out
being more or less unknown, and it's popularity depends very much on
the users and what they believe in, and that will decide if it's to
become mainstream or not.

jvromans> Most problems I encountered in CVS (no atomic commits, no
jvromans> file/tree state versioning, no offline working) seem to be
jvromans> dealt with in SVN. So my question would be: what is it that
jvromans> makes SVN (the current mainstream SCM in our part of the
jvromans> software-world) unsuitable, and would it be feasible to
jvromans> improve SVN for that.

There's one big gripe that I have with CVS that hasn't been addressed
with SVN, at all.  Neither of them seem to keep a graph of
development, which means that subsequent merges from one branch to
another is a pain in the nether regions.  Or at least as far as I can
tell from reading http://subversion.tigris.org/faq.html#changesets
among others.  I prefer changeset-oriented (or history-sensitive)
SCMs, and monotone is one of them (although it also keeps the latest
source of each head in full, thereby also having a snapshotty
aspect).

You seem to indicate that svn can do off-line commits.  I can't see
any indication of that in the docs I can find, so I'm going to be
cautiously dubious until proven otherwise.  I think that any attempt
to do that with a system that has incremented revision IDs is doomed
to failure, because there's always the risk of a clash.

There's another aspect of monotone that I really like a lot: the way
the database is duplicated to every host that participates in
development.  Basically, those are instant backups, and any host that
participates in this network of synchronised databases can be a server
for the developers to work against.  This actually happened in the
development of monotone itself; the main repository crashed, and
people were told to synchronise with a different server.  Development
went on, and the main host simply resynchronised with the backup
server and took back it's role as main server.  That's a feature I
really like with monotone.

Finally, I find monotones working model to be very well documented,
and very easy to understand at a conceptual level.  I don't feel the
same way about svn.

jvromans> > 9 months ago, I stumbled upon monotone (see
jvromans> > http://www.venge.net/monotone/), and it was basically love
jvromans> > at first sight.
jvromans> 
jvromans> Looks nice. However, at a quick glance:
jvromans>  - after years of development, it's still at a 0.xx version

I think that's cautious.  There are things happening with the software
itself, although the database schema and the networking protocol are
surprisingly stable.

It can be pointed out that after years of development, OpenSSL is
still at a 0.x.y version.  Still, it's the most popular free crypto
package out there.  So you see, the version number isn't really that
important, except the author's desire to either impress or to be
cautious (or right on target :-)).  One has to look further to see
what a program is really worth.  If it was me, monotone would probably
already be at 1.x, with active development on 2.x.

The only thing with 0.x versions is that they are usually moving
targets.  As such, the core of monotone is really quite stable.

jvromans>  - single developer who doesn't seem to be very present at
jvromans>    the mailing list

One single developer?  You gotta be kidding, just check out the
AUTHORS file.  I count 38 people, of which 28 have write access to the
central repository (I just checked the amount of public keys in my
database).  As to the handling of that central repository, Graydon has
a man-at-arms present.  This is definitely not a one-man project any
more, and hasn't been for a while.

jvromans>  - I cannot guess its maturaity. Any idea how many real
jvromans>    project are actually using monotone? 

Depends on what you mean with "real projects".  It's been said a few
times that monotone isn't mature enough for "real projects", and I
could agree to a certain level.  There is currently some things that
aren't quite where they should be (we actually found a quirk with
merging of branches where files are renamed or added and removed).
However, for projects like ctwm, where the development complexity is
fairly low, I think monotone is pretty darn good.  I've used it
myself, among others in small commercial projects, for almost a year.

Of course, monotone itself is managed with monotone.  Other than that,
I've only heard of one site that uses monotone openly.  Can't remember
it's name, though.  I'll ask around and get back to you about it.

I'd like to mention git and it's connection with monotone; when it was
announced that the free BitKeeper would stop existing, Linus started
looking around for something different to manage Linux, and was
thinking about monotone. Unfortunately, the version he looked at was
extremely slow (because of all the paranoia checks), so he implemented
git, which is basically a reimplementation of the monotone model using
a different storage method.  In the monotone community, we're a bit
amused by this development...  Oh, and no, I'm not going to recommend
git (or cogito, which is the higher level program) at this point,
although I'm following the development there as well.

Cheers,
Richard

-----
Please consider sponsoring my work on free software.
See http://www.free.lp.se/sponsoring.html for details.

-- 
Richard Levitte                         [EMAIL PROTECTED]
                                        http://richard.levitte.org/

"When I became a man I put away childish things, including
 the fear of childishness and the desire to be very grown up."
                                                -- C.S. Lewis

Reply via email to