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
