comp.lang.ada
 help / color / mirror / Atom feed
From: Stephen Leake <stephen_leake@stephe-leake.org>
Subject: Re: What is your preferred VCS?
Date: Thu, 29 Jul 2010 07:12:54 -0400
Date: 2010-07-29T07:12:54-04:00	[thread overview]
Message-ID: <82lj8ubky1.fsf@stephe-leake.org> (raw)
In-Reply-To: 24890919-000d-4b75-8556-0585e8a2f59d@g21g2000prn.googlegroups.com

deadlyhead <deadlyhead@gmail.com> writes:

> Now, if going the distributed version control route (which is what I'm
> going for), it seems that, these days, there are basically four
> choices:
>    Git
>    Bazaar
>    Mercurial
>    Monotone
>

I have experience with Bazaar and Monotone. I have contributed new
features to Monotone (writing C++ code), but only use Bazaar as a user.

> Mercurial and Bazaar, as far as I can tell, are two implementations of
> the same thing.  Both are written in Python (sigh...), they have very
> similar command sets, and they're very tied to the "branch" view of
> version control.  The scales tip in Mercurial's favor, though, as it
> has decent support for pushing over SSH, and it seems, action-for-
> action, to be a bit faster than Bazaar.  (I could be completely wrong
> about this.  I haven't looked into this for some time.)
>
> Monotone has been said to be implemented in a very "Ada-like way" by
> somebody-or-other who was attempting to build an Ada OS (I think
> called AdaOS.  Stillborn last I heard.)  I've been poking around and I
> don't see it.  It is written in C++ and uses the Boost library, both
> of which I get a bit squirmy thinking about.  I have a special
> distaste for C++, and have never had any success with Boost (though I
> never tried very hard to use it.)

It uses a small subset of Boost, in a fairly structured way.

It uses C macros in a creative but well designed way, providing features
that would actually be difficult in Ada.

I do wish Monotone was written in Ada, but it's simply too late for
that.

I haven't done much Python, but I get the feeling C++ is at least better
for Real Programming than Python!

The best feature of Monotone is the test set that is in the source code.
It is very thorough, and the developers keep it up to date. So you can
trust the code.

It is Ada-like in that it is very well thought-out (there is not a
formal monotone ARG, but it feels like there is). Features are
orthogonal, and do what users need. As one poster on the monotone
mailing list said, the developers are more paranoid about data loss than
the typical user is :).

Monotone keeps the local repository in a single database on your
local disk. Bazaar keeps a full copy of the repository in each
workspace; very cumbersome.

Monotone easily handles multiple heads on a branch, caused by developers
committing work in parallel. It has a very structured way to walk the
user thru resolving the conflicts that result.

Monotone has a structured 'automation' interface, giving front ends
structured text to parse rather than trying to parse the typical user
interface of other DVCs.

There is an Emacs front-end named DVC that provides a common interface
to all four of the DVCs listed above. I maintain the monotone front-end;
it is extended beyond the others to more fully support the operations of
monotone.

The monotone command-line user interface can be extended via Lua
scripts; Lua is a very nice small extension language.

-- 
-- Stephe



  parent reply	other threads:[~2010-07-29 11:12 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-28 23:18 What is your preferred VCS? deadlyhead
2010-07-29  7:30 ` Dmitry A. Kazakov
2010-07-29 10:31 ` Ludovic Brenta
2010-07-29 11:12 ` Stephen Leake [this message]
2010-07-29 14:27 ` Thomas Løcke
2010-07-29 15:34   ` Warren
2010-07-29 15:41     ` Thomas Løcke
2010-07-29 16:08       ` Warren
2010-07-29 16:01 ` Pascal Obry
2010-07-30  2:27 ` deadlyhead
2010-07-30  5:47   ` Thomas Løcke
2010-07-30  7:17   ` Timo Warns
2010-07-30  7:32   ` Georg Bauhaus
2010-07-30  7:41   ` Maciej Sobczak
2010-07-30 11:05   ` Ludovic Brenta
2010-07-30 17:29     ` Pascal Obry
2010-07-30 14:08   ` Warren
2010-07-30 14:28     ` Ludovic Brenta
2010-07-30 15:11       ` Warren
2010-07-30 15:34       ` Georg Bauhaus
2010-07-30 17:36         ` Pascal Obry
2010-08-01  8:12           ` Marcelo Coraça de Freitas
2010-08-01 10:13             ` Ludovic Brenta
2010-08-02 16:21               ` Marcelo Coraça de Freitas
2010-08-02 18:01                 ` Tero Koskinen
2010-08-02 16:23               ` Marcelo Coraça de Freitas
2010-07-30 17:34       ` Pascal Obry
2010-07-30 14:31     ` Ludovic Brenta
2010-07-30 15:13       ` Warren
2010-07-30 17:31   ` Pascal Obry
2010-07-31 15:20     ` Stephen Leake
2010-07-31 16:40       ` Pascal Obry
2010-07-30 20:56   ` Karel Miklav
2010-07-31  7:29     ` Pascal Obry
2010-08-03  4:21     ` Randy Brukardt
2010-07-31 15:28   ` Stephen Leake
2010-07-31 11:58 ` Alex R. Mosteo
2010-08-13 20:23 ` nobody
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox