From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,9e81fa53486a4934 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!post02.iad.highwinds-media.com!news.flashnewsgroups.com-b7.4zTQh5tI3A!not-for-mail From: Stephen Leake Newsgroups: comp.lang.ada Subject: Re: What is your preferred VCS? References: <24890919-000d-4b75-8556-0585e8a2f59d@g21g2000prn.googlegroups.com> Date: Thu, 29 Jul 2010 07:12:54 -0400 Message-ID: <82lj8ubky1.fsf@stephe-leake.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (windows-nt) Cancel-Lock: sha1:YY5wbITFN4DH2UBavMqEmkU05gE= MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: abuse@flashnewsgroups.com Organization: FlashNewsgroups.com X-Trace: 0a03e4c516237e029e66114851 Xref: g2news1.google.com comp.lang.ada:12658 Date: 2010-07-29T07:12:54-04:00 List-Id: deadlyhead 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