comp.lang.ada
 help / color / mirror / Atom feed
* What is your preferred VCS?
@ 2010-07-28 23:18 deadlyhead
  2010-07-29  7:30 ` Dmitry A. Kazakov
                   ` (7 more replies)
  0 siblings, 8 replies; 38+ messages in thread
From: deadlyhead @ 2010-07-28 23:18 UTC (permalink / raw)


Since I trust the Ada community by and large when it comes to
questions of robustness and cleanliness of code, it seems fitting that
I might cast about for opinions on choosing a version control system.

My personal preference in the past has been GNU Arch.  While its
interface was a bit cumbersome, I felt it was powerful, well-built and
ahead of its time.  Unfortunately its long been a dormant project,
ever since Bzr forked from it and mutated, pulling the small community
that was forming around it away.  Tom Lord's intended successor, revc,
stalled as well due to other circumstances, and finding copies of that
code base is like playing Hunt the Wumpus.

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

People/projects seem to like these for different reasons, but so far I
haven't gotten excited by any of them.

Git seems like it's pretty fast for source files (though chokes on
binaries?), and robust enough to handle huge projects like the Linux
kernel.  But it seems not so much developed/designed as hacked
together, a hodge-podge of Linus Torvalds' special brand of C+Perl
(which just makes me shudder.)

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.)

Perhaps somebody here can give me a reason to prefer any of these, or
better yet, have a completely different suggestion.  (Is there one
written in Ada?  I'm there!)  The amount of _biased_ information
available is overwhelming, and I'm having some trouble seeing the
forest for the yelling trees.

Disclosure: I know about darcs, and how it has its roots as attempting
to implement a new patching model on top of Arch.  I like a lot of its
concepts, but when it comes down to it, I don't like it enough to
force Haskell into my development flow.  I think Haskell is very
interesting and I can appreciate what it brings to functional
programming, but deep down I hack in Scheme when I'm not developing in
Ada, and just don't feel like going that route.



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  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
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 38+ messages in thread
From: Dmitry A. Kazakov @ 2010-07-29  7:30 UTC (permalink / raw)


On Wed, 28 Jul 2010 16:18:00 -0700 (PDT), deadlyhead wrote:

> Perhaps somebody here can give me a reason to prefer any of these, or
> better yet, have a completely different suggestion.  (Is there one
> written in Ada?  I'm there!)  The amount of _biased_ information
> available is overwhelming, and I'm having some trouble seeing the
> forest for the yelling trees.

I don't have a preferred VCS, I have ones I dislike (Perforce, MKS,
Subversion). It would be nice to have one in Ada, but more i important to
me are the features:

1. Projects support (no individual files/directories checking in/out)
2. Project dependencies support
3. Project views e.g. integrator's view (dll, exe), user's view (ads, ali,
lib), developer's view (everything) etc
4. Virtual file system (no visible local copies on the clients)
5. Automatic build-test-package support
6. No merging, no way to uncheck anything twice

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  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
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 38+ messages in thread
From: Ludovic Brenta @ 2010-07-29 10:31 UTC (permalink / raw)


deadlyhead <deadlyhead@gmail.com> writes:
> 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.)

That was me, actually.  I explained the reasons why I prefer Monotone in
the trhead starting at [1], which included an interesting discussion
thereafter.

[1] http://groups.google.com/group/comp.lang.ada/msg/bf2f9970828367bd

Now, several people have started using Monotone to collaborate over
Debian packaging and other things like AdaOS.

-- 
Ludovic Brenta.



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  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
  2010-07-29 14:27 ` Thomas Løcke
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 38+ messages in thread
From: Stephen Leake @ 2010-07-29 11:12 UTC (permalink / raw)


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



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-28 23:18 What is your preferred VCS? deadlyhead
                   ` (2 preceding siblings ...)
  2010-07-29 11:12 ` Stephen Leake
@ 2010-07-29 14:27 ` Thomas Løcke
  2010-07-29 15:34   ` Warren
  2010-07-29 16:01 ` Pascal Obry
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 38+ messages in thread
From: Thomas Løcke @ 2010-07-29 14:27 UTC (permalink / raw)


On 2010-07-29 01:18, deadlyhead wrote:
> Since I trust the Ada community by and large when it comes to
> questions of robustness and cleanliness of code, it seems fitting that
> I might cast about for opinions on choosing a version control system.


I use Git for the following reasons:

1. _Very_ easy to get up and running. Setting up a Git server is about 
as easy as it gets:

git daemon --base-path=/some/where --user=git --detach

2. The documentation is superb (IMHO): http://git-scm.com/documentation

3. Branches are very cheap.

4. It is fast.

5. I feel I can trust it with my precious code.  :o)

The other systems you mention might be both as easy, trustworthy and 
fast, but it's been a couple years since I tried any of them, so I 
wouldn't know it.

Actually this page describes my reasons pretty well:

http://whygitisbetterthanx.com/

Yea, the URL is a bit offensive/flame-baity, but the arguments are valid 
enough.

-- 
Regards,
Thomas L�cke

Email: tl at ada-dk.org
Web: http:ada-dk.org
IRC nick: ThomasLocke



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-29 14:27 ` Thomas Løcke
@ 2010-07-29 15:34   ` Warren
  2010-07-29 15:41     ` Thomas Løcke
  0 siblings, 1 reply; 38+ messages in thread
From: Warren @ 2010-07-29 15:34 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1677 bytes --]

Thomas L�cke expounded in news:4c518fc7$0$272$14726298@news.sunsite.dk:

> On 2010-07-29 01:18, deadlyhead wrote:
>> Since I trust the Ada community by and large when it comes to
>> questions of robustness and cleanliness of code, it seems fitting that
>> I might cast about for opinions on choosing a version control system.

I realize that I am gradually becoming one in the
minority these days, but I have always used and 
trusted cvs.

It doesn't get in the way and does precisely what
I need.

The only time cvs has ever been a problem is when 
I wanted to rename something and retain it's history.

But the simple answer to that is "don't do that". ;-)

> I use Git for the following reasons:

People who use git seem to like it. At some point,
I need to spend some time making friends with it.  

> 1. _Very_ easy to get up and running. Setting up a Git server is about 
> as easy as it gets:
> 
> git daemon --base-path=/some/where --user=git --detach

I do like the idea of setting up my own 
git server without a lot of fuss- so I need 
to try that. Setting up a cvs server is admitedly 
a pain. But it's real easy now to create projects
with cvs support on SF ;-)

> 2. The documentation is superb (IMHO): http://git-scm.com/documentation

We'll see. My main objection right now is taking
the time to switch over. I have at least another
6-months of Ada05 code to write before it's 0.50
release.

> 5. I feel I can trust it with my precious code.  :o)

This is number 1. I hate doing things more than once. >8/

> Actually this page describes my reasons pretty well:
> 
> http://whygitisbetterthanx.com/

You don't even acknowledge cvs there. Blasphemy!

Warren



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-29 15:34   ` Warren
@ 2010-07-29 15:41     ` Thomas Løcke
  2010-07-29 16:08       ` Warren
  0 siblings, 1 reply; 38+ messages in thread
From: Thomas Løcke @ 2010-07-29 15:41 UTC (permalink / raw)


On 2010-07-29 17:34, Warren wrote:
>> Actually this page describes my reasons pretty well:
>>
>> http://whygitisbetterthanx.com/
>
> You don't even acknowledge cvs there. Blasphemy!


The above URL does not belong to me, nor is the content written by me. 
It just happened to convey my feelings about Git in a concise manner.

Just so that's cleared up. I'd rather not take credit for some other 
guys website.  :o)

-- 
Regards,
Thomas L�cke

Email: tl at ada-dk.org
Web: http:ada-dk.org
IRC nick: ThomasLocke



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-28 23:18 What is your preferred VCS? deadlyhead
                   ` (3 preceding siblings ...)
  2010-07-29 14:27 ` Thomas Løcke
@ 2010-07-29 16:01 ` Pascal Obry
  2010-07-30  2:27 ` deadlyhead
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 38+ messages in thread
From: Pascal Obry @ 2010-07-29 16:01 UTC (permalink / raw)


Le 29/07/2010 01:18, deadlyhead a �crit :
> My personal preference in the past has been GNU Arch.  While its
> interface was a bit cumbersome, I felt it was powerful, well-built and
> ahead of its time.  Unfortunately its long been a dormant project,
> ever since Bzr forked from it and mutated, pulling the small community
> that was forming around it away.  Tom Lord's intended successor, revc,
> stalled as well due to other circumstances, and finding copies of that
> code base is like playing Hunt the Wumpus.
> 
> 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

For me it is Git. I'm using it since some years now. It is powerful and
works pretty well in all contexts I have encountered. I have used a bit
Mercurial (didn't like the old way to branch, forcing to have multiple
directories, I understand that there is new feature to solve this). I
have read some Bazaar documentation, it seems quite nice. But at the
moment I won't switch because Git is very very very fast.

I've used extensively CVS and Subversion in the past. I won't move back
to those for any reasons.

When I need to work with a Subversion repository I use git-svn which is
a bi-directional tunnel. I'm working on many Open Source projects this
way since some time now.

I have also used "git bisect" two or three time already... This is
another reason I won't leave Git (at least for the moment).

Just my 2 cents.

Pascal.

-- 

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|    http://www.obry.net  -  http://v2p.fr.eu.org
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver keys.gnupg.net --recv-key F949BD3B




^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-29 15:41     ` Thomas Løcke
@ 2010-07-29 16:08       ` Warren
  0 siblings, 0 replies; 38+ messages in thread
From: Warren @ 2010-07-29 16:08 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 540 bytes --]

Thomas L�cke expounded in news:4c51a113$0$285$14726298@news.sunsite.dk:

> On 2010-07-29 17:34, Warren wrote:
>>> Actually this page describes my reasons pretty well:
>>>
>>> http://whygitisbetterthanx.com/
>>
>> You don't even acknowledge cvs there. Blasphemy!
> 
> The above URL does not belong to me, nor is the content written by me. 
> It just happened to convey my feelings about Git in a concise manner.
> 
> Just so that's cleared up. I'd rather not take credit for some other 
> guys website.  :o)

Still blasphemy ;-)

Warren



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-28 23:18 What is your preferred VCS? deadlyhead
                   ` (4 preceding siblings ...)
  2010-07-29 16:01 ` Pascal Obry
@ 2010-07-30  2:27 ` deadlyhead
  2010-07-30  5:47   ` Thomas Løcke
                     ` (8 more replies)
  2010-07-31 11:58 ` Alex R. Mosteo
  2010-08-13 20:23 ` nobody
  7 siblings, 9 replies; 38+ messages in thread
From: deadlyhead @ 2010-07-30  2:27 UTC (permalink / raw)


Thanks for all the replies!  I'm glad nobody took this as an
invitation to a flame war.  ;-)

From this small-but-elite sample, it seems like Monotone and Git are
the routes to check out more deeply, if for no other reasons than
speed and code security.  Developers seem to trust them!

Y'know, I've never actually gotten Bazaar to work on any system I've
been running, whether from packages or source, GNU/Linux or Windows.
Something in a library always seems to go wrong, and I'm just not
interested enough to dig deeper.  (I'm not particularly a fan of
Python, which is why I haven't looked at Mercurial closely, either.)

For those who like Monotone: is using a "real database" really that
much of advantage?  I'm a bit leery of such an opaque system being
used to save my patches.  Having physical file-system access to
changes makes _me_ feel a bit more secure, and is something that I
really like about GNU Arch.  Is it the speed that makes it good?  Or
collision detection? I'm just curious; I've never had problems in
those areas before, so I'm a bit insensitive.

And those who like Git:  Fast, cheap and easy... for some reason that
seems _very_ Linus Torvalds-ish.  :-)  Still, Perl scripts
intermingled with C?  Perhaps I just need to get over that.  I'll read
over the Why Git is Better... site.  It _does_ seem easy to try out.
Perhaps I'll be able to look the other way when it comes to
aesthetics.

Sorry, Warren. CVS/SVN are right out.  Their tools that I use to
download source code from Sourceforge, but I just don't think I could
handle actually _working_ with them.  I've had better luck just
archiving the *~ files saved by Emacs than I have with using SVN
locally.



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30  2:27 ` deadlyhead
@ 2010-07-30  5:47   ` Thomas Løcke
  2010-07-30  7:17   ` Timo Warns
                     ` (7 subsequent siblings)
  8 siblings, 0 replies; 38+ messages in thread
From: Thomas Løcke @ 2010-07-30  5:47 UTC (permalink / raw)


On 2010-07-30 04:27, deadlyhead wrote:
> And those who like Git:  Fast, cheap and easy... for some reason that
> seems _very_ Linus Torvalds-ish.  :-)  Still, Perl scripts
> intermingled with C?  Perhaps I just need to get over that.  I'll read
> over the Why Git is Better... site.  It _does_ seem easy to try out.
> Perhaps I'll be able to look the other way when it comes to
> aesthetics.


As far as I know, that was only true back in the very early days of Git.

Git is written in plain old C.

I just took a quick look at the source for Git 1.7.2.1, and I couldn't 
find anything that looked messy, ugly or Perl'ish. It's just plain C, 
and very good C at that, IMHO.

Why not just grab the source yourself and look it over?

http://kernel.org/pub/software/scm/git/git-1.7.2.1.tar.gz

Maybe there's a grand Ada project sitting here, just waiting to get 
done? An Ada powered Git!  :D

-- 
Regards,
Thomas L�cke

Email: tl at ada-dk.org
Web: http:ada-dk.org
IRC nick: ThomasLocke



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  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
                     ` (6 subsequent siblings)
  8 siblings, 0 replies; 38+ messages in thread
From: Timo Warns @ 2010-07-30  7:17 UTC (permalink / raw)


You may also be interested in the analysis of Google on Git vs. Mercurial:
http://code.google.com/p/support/wiki/DVCSAnalysis

I personally prefer Mercurial over Git. It has all the features I need, is
stable, and has a more gradual learning curve than Git.



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  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
                     ` (5 subsequent siblings)
  8 siblings, 0 replies; 38+ messages in thread
From: Georg Bauhaus @ 2010-07-30  7:32 UTC (permalink / raw)


On 7/30/10 4:27 AM, deadlyhead wrote:

> For those who like Monotone: is using a "real database" really that
> much of advantage?  I'm a bit leery of such an opaque system being
> used to save my patches.  Having physical file-system access to
> changes makes _me_ feel a bit more secure,

I find dumping and importing of Monotone's sqlite databases reassuring.
(It never felt equally promising when something went wrong in darcs's file
system storage area...)

Output of the .dump command is SQL text.  Example first lines of
a repository, copied from a real repository:

BEGIN TRANSACTION;
CREATE TABLE files
         (
         id primary key,   -- strong hash of file contents
         data not null     -- compressed contents of a file
         );
INSERT INTO "files" VALUES(X'8C9C5E5179290FF93F3024391C1FAACB1BD393EE',X'1F8B08000000000000FFAD595B6F134B127EE757B
4FCB0198BC4109ECEC231524808EBDD00511C402B8446ED71C79E3D76B777A6872452B4BF7...

Easy backup; 7bit network transport works; file system independence;
explicit relations;...
An email, secured as necessary, stuffed with a dumped repository
will serve as permanent file storage for smaller projects...

I guess that everything to be had via SQL from Monotone's ER model
is not that easily had from a journalling file system. Even when
the hand full of tools like ls, awk, and some VC specific programs
can be used to create an RDMS, will it be simpler or more secure
than some industry standard data base?



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30  2:27 ` deadlyhead
                     ` (2 preceding siblings ...)
  2010-07-30  7:32   ` Georg Bauhaus
@ 2010-07-30  7:41   ` Maciej Sobczak
  2010-07-30 11:05   ` Ludovic Brenta
                     ` (4 subsequent siblings)
  8 siblings, 0 replies; 38+ messages in thread
From: Maciej Sobczak @ 2010-07-30  7:41 UTC (permalink / raw)


On 30 Lip, 04:27, deadlyhead <deadlyh...@gmail.com> wrote:

> (I'm not particularly a fan of
> Python, which is why I haven't looked at Mercurial closely, either.)
[...]

> Still, Perl scripts
> intermingled with C?

I think that you are too much focused on the implementation details.
VCS is a *tool*. Are you going to fork it and continue its development
yourself or just, you know,... USE it?
I don't understand your focus, really.

Just in case you decide to tame your bias, this is something you might
want to read:

http://progit.org/book/

It is not a comparison of existing tools (if you are interested in
comparisons, you will never take any decision before retirement), it
is a manual on how to use Git. This book has vastly improved my
efficiency and expanded my understanding on various development
workflows, you might like it as well.

--
Maciej Sobczak * http://www.inspirel.com

YAMI4 - Messaging Solution for Distributed Systems
http://www.inspirel.com/yami4



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30  2:27 ` deadlyhead
                     ` (3 preceding siblings ...)
  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
                     ` (3 subsequent siblings)
  8 siblings, 1 reply; 38+ messages in thread
From: Ludovic Brenta @ 2010-07-30 11:05 UTC (permalink / raw)


deadlyhead <deadlyhead@gmail.com> writes on comp.lang.ada:
> From this small-but-elite sample, it seems like Monotone and Git are
> the routes to check out more deeply, if for no other reasons than
> speed and code security.  Developers seem to trust them!

That is also my conclusion.  I prefer Monotone.

> For those who like Monotone: is using a "real database" really that
> much of advantage?  I'm a bit leery of such an opaque system being
> used to save my patches.  Having physical file-system access to
> changes makes _me_ feel a bit more secure, and is something that I
> really like about GNU Arch.  Is it the speed that makes it good?  Or
> collision detection? I'm just curious; I've never had problems in
> those areas before, so I'm a bit insensitive.

I like the fact that a database is a single file.

I like the fact that this single file is outside working trees; I can
thus safely "rm -rf" a working tree without losing the database.  Also,
I share my databases between multiple working trees.

I like to be able to use the SQLite command-line interface to run SQL
queries on it; this is much easier than a specialized set pf VC-specific
commands if you need to get at the data from outside Monotone.  In fact,
Monotone has the "mtn db execute <SQL_Statement>" for that purpose.

I like the attitude of the Monotone developers.  They have an extensive
test suite which they run systematically and extend with each new
feature.  Similarly the excellent documentation is in sync with the code
base.  While git started out as a quick hack developed over a couple of
days, monotone did the Right Thing from the onset, fosusing on
performance only afterwards (and performance is very good nowadays).

> And those who like Git:  Fast, cheap and easy...

Personally, I do not find git easy at all.  Monotone is much easier to
understand and use IMHO.  The sheer number of commands and options in
git is daunting; there are redundancies, overlaps and idiosyncrasies in
this command set (e.g. does anyone on comp.lang.ada understand the
subtle difference between git-merge-base and git-show-branch
--merge-base ?)

-- 
Ludovic Brenta.



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30  2:27 ` deadlyhead
                     ` (4 preceding siblings ...)
  2010-07-30 11:05   ` Ludovic Brenta
@ 2010-07-30 14:08   ` Warren
  2010-07-30 14:28     ` Ludovic Brenta
  2010-07-30 14:31     ` Ludovic Brenta
  2010-07-30 17:31   ` Pascal Obry
                     ` (2 subsequent siblings)
  8 siblings, 2 replies; 38+ messages in thread
From: Warren @ 2010-07-30 14:08 UTC (permalink / raw)


deadlyhead expounded in news:a1bca3fc-c324-4385-87db-d3b3d626aee4
@i18g2000pro.googlegroups.com:

> Thanks for all the replies!  I'm glad nobody took this as an
> invitation to a flame war.  ;-)
> 
> From this small-but-elite sample, it seems like Monotone and Git are
> the routes to check out more deeply, if for no other reasons than
> speed and code security.  Developers seem to trust them!
> 
> Y'know, I've never actually gotten Bazaar to work on any system I've
> been running, whether from packages or source, GNU/Linux or Windows.
> Something in a library always seems to go wrong, and I'm just not
> interested enough to dig deeper.  (I'm not particularly a fan of
> Python, which is why I haven't looked at Mercurial closely, either.)
...
> Sorry, Warren. CVS/SVN are right out.  Their tools that I use to
> download source code from Sourceforge, but I just don't think I could
> handle actually _working_ with them.  I've had better luck just
> archiving the *~ files saved by Emacs than I have with using SVN
> locally.

Well a longer time ago, I just used RCS locally. But I liked the 
idea of having things backed up on a server, so I moved over to
cvs, which was in vogue at the time. 

Then all of a sudden, everyone was developing a new flavour of the
week VCS. I just stayed with cvs while everyone else went through
the teething pains of new systems. I'm too busy to be fussing with
toolchains _and_ my own projects.  I'm also not a big fan of systems
in perl or python. I suppose each has their place, but I don't 
think the track record is that stellar for reliability.

But the time has come where I probably need to look at this again.
Git sounds like a contender.  But it can wait, unless SF takes cvs 
away at some point.

Cvs isn't hard to use. But I have to admit, it wasn't easy when 
I started for some reason. But once you assimilate into the borg,
it all seems to be so natural.

Warren



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30 14:08   ` Warren
@ 2010-07-30 14:28     ` Ludovic Brenta
  2010-07-30 15:11       ` Warren
                         ` (2 more replies)
  2010-07-30 14:31     ` Ludovic Brenta
  1 sibling, 3 replies; 38+ messages in thread
From: Ludovic Brenta @ 2010-07-30 14:28 UTC (permalink / raw)


Warren <ve3wwg@gmail.com> writes on comp.lang.ada:
> Well a longer time ago, I just used RCS locally.  But I liked the idea
> of having things backed up on a server, so I moved over to cvs, which
> was in vogue at the time.

CVS is complete and utter rubbish.  Its only redeeming feature was that
it was the only free VCS in existence for many years.

> Then all of a sudden, everyone was developing a new flavour of the
> week VCS. I just stayed with cvs while everyone else went through the
> teething pains of new systems. I'm too busy to be fussing with
> toolchains _and_ my own projects.  I'm also not a big fan of systems
> in perl or python. I suppose each has their place, but I don't think
> the track record is that stellar for reliability.

I switched from CVS to Meta-CVS as soon as I discovered the latter; it
at least solved two of the most gaping problems: keeping track of merges
and renaming files without losing their history.

> But the time has come where I probably need to look at this again.
> Git sounds like a contender.  But it can wait, unless SF takes cvs
> away at some point.
>
> Cvs isn't hard to use. But I have to admit, it wasn't easy when 
> I started for some reason. But once you assimilate into the borg,
> it all seems to be so natural.

I think Monotone is even easier to use than CVS because it has a similar
command set without the idiosyncrasies e.g. per-file history, no proper
merge support, non-atomic commits, expensive branches, expensive tags,
and the list goes on.  Even if you use Monotone only locally, without
taking advantage of its distributed nature, it is still a huge
improvement over CVS.

I personally think mentioning CVS as a contender in 2010 is a blasphemy
:)

-- 
Ludovic Brenta.



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30 14:08   ` Warren
  2010-07-30 14:28     ` Ludovic Brenta
@ 2010-07-30 14:31     ` Ludovic Brenta
  2010-07-30 15:13       ` Warren
  1 sibling, 1 reply; 38+ messages in thread
From: Ludovic Brenta @ 2010-07-30 14:31 UTC (permalink / raw)


Warren <ve3wwg@gmail.com> writes on comp.lang.ada:
> But it [git] can wait, unless SF takes cvs away at some point.

BTW, Ada-France offers free hosting in a Monotone database for Ada
projects :)

-- 
Ludovic Brenta.



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30 14:28     ` Ludovic Brenta
@ 2010-07-30 15:11       ` Warren
  2010-07-30 15:34       ` Georg Bauhaus
  2010-07-30 17:34       ` Pascal Obry
  2 siblings, 0 replies; 38+ messages in thread
From: Warren @ 2010-07-30 15:11 UTC (permalink / raw)


Ludovic Brenta expounded in news:87k4odxcuz.fsf@ludovic-brenta.org:

> Warren <ve3wwg@gmail.com> writes on comp.lang.ada:
>> Well a longer time ago, I just used RCS locally.  But I liked the
>> idea of having things backed up on a server, so I moved over to cvs,
>> which was in vogue at the time.
> 
> CVS is complete and utter rubbish.  Its only redeeming feature was
> that it was the only free VCS in existence for many years.

> I think Monotone is even easier to use than CVS because it has a
> similar command set without the idiosyncrasies e.g. per-file history, 

I've _never_ found that to be limiting.

> no proper merge support, 

Do you mean between different branches? Then yes, this might
be a problem.  I tend not to do branches, so my life is 
simpler (though we did do this at work some time before
we were forced to use an inferior commercial product).

But it merges just fine between the file and a newer
committed change.

> non-atomic commits, 

That's never been an issue, even when my team (at work)
was active with it. It was a small team mind you.

>  expensive branches, 

We didn't use this that much. I tend not to for Open S.
projects (I have that luxury ;-)

> expensive tags,

"Expensive" is a relative term, but who cares? You don't
do this very often.

> and the list goes on.  Even if you use Monotone only locally, without
> taking advantage of its distributed nature, it is still a huge
> improvement over CVS.

Personally, the issues you cited were never a big deal
for me.  

I suppose if you had 100s of programmers pounding
on the same cvs server, or you had several millions of
files involved, I could see scaling problems.  But none
of that ever applied to me.

> I personally think mentioning CVS as a contender in 2010 is a
> blasphemy 
>:)

Hah! 8-<

Warren



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30 14:31     ` Ludovic Brenta
@ 2010-07-30 15:13       ` Warren
  0 siblings, 0 replies; 38+ messages in thread
From: Warren @ 2010-07-30 15:13 UTC (permalink / raw)


Ludovic Brenta expounded in news:87d3u5xcq6.fsf@ludovic-brenta.org:

> Warren <ve3wwg@gmail.com> writes on comp.lang.ada:
>> But it [git] can wait, unless SF takes cvs away at some point.
> 
> BTW, Ada-France offers free hosting in a Monotone database for Ada
> projects :)

:) but, I already have free hosting at SF. I can use
Git if I wannit, but I'm not ready to switch (I really
don't have a compelling reason to switch).

Warren



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  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-07-30 17:34       ` Pascal Obry
  2 siblings, 1 reply; 38+ messages in thread
From: Georg Bauhaus @ 2010-07-30 15:34 UTC (permalink / raw)


On 30.07.10 16:28, Ludovic Brenta wrote:

> I personally think mentioning CVS as a contender in 2010 is a blasphemy
> :)

Carrying this further off topic, is anyone working
on the definition a protocol that facilitates data
exchange between VCSs?



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30 11:05   ` Ludovic Brenta
@ 2010-07-30 17:29     ` Pascal Obry
  0 siblings, 0 replies; 38+ messages in thread
From: Pascal Obry @ 2010-07-30 17:29 UTC (permalink / raw)


Ludovic,

> Personally, I do not find git easy at all.  Monotone is much easier to
> understand and use IMHO.  The sheer number of commands and options in
> git is daunting; there are redundancies, overlaps and idiosyncrasies in
> this command set (e.g. does anyone on comp.lang.ada understand the
> subtle difference between git-merge-base and git-show-branch
> --merge-base ?)

No, but you don't need to call those commands directly. I've never used
them and I do branching/merging a lot :) There is two set of commands in
Git. The "user" oriented ones are described by:

   $ git

Others may be useful for building high level script to fit your needs.

Pascal.

-- 

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|    http://www.obry.net  -  http://v2p.fr.eu.org
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver keys.gnupg.net --recv-key F949BD3B




^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30  2:27 ` deadlyhead
                     ` (5 preceding siblings ...)
  2010-07-30 14:08   ` Warren
@ 2010-07-30 17:31   ` Pascal Obry
  2010-07-31 15:20     ` Stephen Leake
  2010-07-30 20:56   ` Karel Miklav
  2010-07-31 15:28   ` Stephen Leake
  8 siblings, 1 reply; 38+ messages in thread
From: Pascal Obry @ 2010-07-30 17:31 UTC (permalink / raw)
  To: deadlyhead

Le 30/07/2010 04:27, deadlyhead a �crit :
> And those who like Git:  Fast, cheap and easy... for some reason that
> seems _very_ Linus Torvalds-ish.  :-)  Still, Perl scripts
> intermingled with C?  Perhaps I just need to get over that.  I'll read
> over the Why Git is Better... site.  It _does_ seem easy to try out.
> Perhaps I'll be able to look the other way when it comes to
> aesthetics.

Only git-svn is in perl at the moment. The rest is pure C and some
scripts. During the past years many scripts have been rewritten in plain
C for performance reasons.

Pascal.

-- 

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|    http://www.obry.net  -  http://v2p.fr.eu.org
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver keys.gnupg.net --recv-key F949BD3B




^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30 14:28     ` Ludovic Brenta
  2010-07-30 15:11       ` Warren
  2010-07-30 15:34       ` Georg Bauhaus
@ 2010-07-30 17:34       ` Pascal Obry
  2 siblings, 0 replies; 38+ messages in thread
From: Pascal Obry @ 2010-07-30 17:34 UTC (permalink / raw)
  To: Ludovic Brenta


Ludovic,

> I personally think mentioning CVS as a contender in 2010 is a blasphemy
> :)

Fully agree, and I know many projects still using CVS and having many
problems because of it (merging is a mess) but yet don't want to switch
to something else :(

But at this point I refuse to work for any project using CVS.

Pascal.

-- 

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|    http://www.obry.net  -  http://v2p.fr.eu.org
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver keys.gnupg.net --recv-key F949BD3B




^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30 15:34       ` Georg Bauhaus
@ 2010-07-30 17:36         ` Pascal Obry
  2010-08-01  8:12           ` Marcelo Coraça de Freitas
  0 siblings, 1 reply; 38+ messages in thread
From: Pascal Obry @ 2010-07-30 17:36 UTC (permalink / raw)


Georg,

> Carrying this further off topic, is anyone working
> on the definition a protocol that facilitates data
> exchange between VCSs?

Yes, this is on the road. It is called fast-export and fast-import. Many
DVCS are proposing tools to do both.

Pascal.

-- 

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|    http://www.obry.net  -  http://v2p.fr.eu.org
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver keys.gnupg.net --recv-key F949BD3B




^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30  2:27 ` deadlyhead
                     ` (6 preceding siblings ...)
  2010-07-30 17:31   ` 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
  8 siblings, 2 replies; 38+ messages in thread
From: Karel Miklav @ 2010-07-30 20:56 UTC (permalink / raw)


deadlyhead wrote:
> For those who like Monotone: is using a "real database" really that
> much of advantage?

Where the hell this meme still draws the power from? I have not seen a 
real application with a bunch of files at its core for a long time and I 
do not really believe you are not aware of advantages of database over 
the filesystem. The whole quoted sentence is probably a blob inserted by 
a benevolent humorous virus, so let's just take a laugh and move on.

--- news://freenews.netfront.net/ - complaints: news@netfront.net ---



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30 20:56   ` Karel Miklav
@ 2010-07-31  7:29     ` Pascal Obry
  2010-08-03  4:21     ` Randy Brukardt
  1 sibling, 0 replies; 38+ messages in thread
From: Pascal Obry @ 2010-07-31  7:29 UTC (permalink / raw)
  To: Karel Miklav

Karel,

> deadlyhead wrote:
>> For those who like Monotone: is using a "real database" really that
>> much of advantage?
> 
> Where the hell this meme still draws the power from? I have not seen a
> real application with a bunch of files at its core for a long time and I
> do not really believe you are not aware of advantages of database over
> the filesystem. The whole quoted sentence is probably a blob inserted by
> a benevolent humorous virus, so let's just take a laugh and move on.

To me it really depends on the application. For sure database is lot
more powerful in general. But in the case of a hierarchical data (like
git does) the file system is really good too because it is a
hierarchical database.

Pascal.

-- 

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|    http://www.obry.net  -  http://v2p.fr.eu.org
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver keys.gnupg.net --recv-key F949BD3B




^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-28 23:18 What is your preferred VCS? deadlyhead
                   ` (5 preceding siblings ...)
  2010-07-30  2:27 ` deadlyhead
@ 2010-07-31 11:58 ` Alex R. Mosteo
  2010-08-13 20:23 ` nobody
  7 siblings, 0 replies; 38+ messages in thread
From: Alex R. Mosteo @ 2010-07-31 11:58 UTC (permalink / raw)


deadlyhead wrote:

> (...)
> 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
> 
> People/projects seem to like these for different reasons, but so far I
> haven't gotten excited by any of them.

I'm late to the party, but FWIW.

I tried a bit of git and mercurial some months ago, when moving to DVCS for 
the first time.

I think I could get used to any of these two with sufficient exposure. 
However, mercurial felt like a natural transition from svn, whereas with git 
there was always a nagging feeling of uneasiness of being forgetting some 
option or switch that could ruin my branching/merging. I kept going back to 
tutorials and examples for reassurance. With mercurial I feel that I have 
the control more easily.

Admittedly, I didn't start with the simplest projects, but tracking remotes 
in svn with non-standard configurations, which complicated a bit the first 
steps.

OTOH, I prefer the git way of managing remotes over mercurial hand-editing 
of (unversioned!?) files. And git-svn is great, as someone already said.

All in all, mercurial was my natural fit, but it seemed less featured than 
git. And gitk is really nice. Mercurial port is several years old, I think.



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30 17:31   ` Pascal Obry
@ 2010-07-31 15:20     ` Stephen Leake
  2010-07-31 16:40       ` Pascal Obry
  0 siblings, 1 reply; 38+ messages in thread
From: Stephen Leake @ 2010-07-31 15:20 UTC (permalink / raw)


Pascal Obry <pascal@obry.net> writes:

> Le 30/07/2010 04:27, deadlyhead a écrit :
>> And those who like Git:  Fast, cheap and easy... for some reason that
>> seems _very_ Linus Torvalds-ish.  :-)  Still, Perl scripts
>> intermingled with C?  Perhaps I just need to get over that.  I'll read
>> over the Why Git is Better... site.  It _does_ seem easy to try out.
>> Perhaps I'll be able to look the other way when it comes to
>> aesthetics.
>
> Only git-svn is in perl at the moment. The rest is pure C and some
> scripts. 

"scripts" in what language? I guess you mean bash, but it would help to
be precise.

-- 
-- Stephe



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30  2:27 ` deadlyhead
                     ` (7 preceding siblings ...)
  2010-07-30 20:56   ` Karel Miklav
@ 2010-07-31 15:28   ` Stephen Leake
  8 siblings, 0 replies; 38+ messages in thread
From: Stephen Leake @ 2010-07-31 15:28 UTC (permalink / raw)


deadlyhead <deadlyhead@gmail.com> writes:

> For those who like Monotone: is using a "real database" really that
> much of advantage?  

It gives high-level atomic transactions. Either you commit _all_ files,
or you commit none. 

Others have talked about being able to do SQL queries. That's not as
useful as it might seem; almost everything in the database is a gzipped
blob, so it's not easy to search on. But some things are plain text
(attributes, author names); doing SQL on those can be useful.

Personally, I've only resorted to SQL when something was broken. I
quickly fix the real bug in the monotone C++ code, so SQL is becoming
less usefull over time :).

> I'm a bit leery of such an opaque system being used to save my
> patches. Having physical file-system access to changes makes _me_ feel
> a bit more secure, and is something that I really like about GNU Arch.

That is a point. However, you can in fact retrieve any file intact from
the database via mtn automate commands. Once you trust that, the atomic
transactions make it worth it.

> Is it the speed that makes it good? 

Speed is very subjective. On most systems I use, for the workspaces I
have, monotone is "fast enough"; it doesn't get in the way of my normal
work flow. 

-- 
-- Stephe



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-31 15:20     ` Stephen Leake
@ 2010-07-31 16:40       ` Pascal Obry
  0 siblings, 0 replies; 38+ messages in thread
From: Pascal Obry @ 2010-07-31 16:40 UTC (permalink / raw)
  To: Stephen Leake


Stephen,

> "scripts" in what language? I guess you mean bash, but it would help to
> be precise.

Right, I meant shell scripts. It is standard sh more precisely and it
tries hard to avoid bashism.

Pascal.

-- 

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|    http://www.obry.net  -  http://v2p.fr.eu.org
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver keys.gnupg.net --recv-key F949BD3B




^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30 17:36         ` Pascal Obry
@ 2010-08-01  8:12           ` Marcelo Coraça de Freitas
  2010-08-01 10:13             ` Ludovic Brenta
  0 siblings, 1 reply; 38+ messages in thread
From: Marcelo Coraça de Freitas @ 2010-08-01  8:12 UTC (permalink / raw)


Wow, long topic this one.

Every message I have read had several good points. I stoped reading I
think at 60% of it... sorry if what I am about to say is redundant in
anyway and I will try to read the rest after I send this and keep
reathing this as time goes by. Oh, and keep in mind I am not a native
english speaker (and I acquired my english skills by playing some
random FPS games with some cool kids from USA).

First a small clarification. The Operating System project that was
using monotone is AuroraUX, not AdaOS. I has been involved in both
projects. In the AdaOS time I was only a PHP coder so there wasn't
much I could do to really help and the project ended a long time ago.

AuroraUX began as a fork from Open Solaris and now the system is based
on a BSD flavour (well, that's not really important in this topic).
They started using monotone but switched to git for a simple reason:
monotone is VERY slow (and I do mean slow.. taking several hours) when
cloning a given repository thanks to a bug in it (I don't know what
exactly causes this bug). I know someone intended to fix this it, but
for now they switched to git as it's great for large projects and
works very well.

I am using git myself in the KOW Framework repositories (for those who
don't now yet that includes APQ). Actually, if any of you need a git
repository (and a redmine project page) for your Open Source code just
email in private and I'll see what I can do about it.

Git is fast, easy to learn and to setup and the best thing: it simply
works. Remember it is just a tool, one that is well tested in real-
life situation by it's own developers. For your code to be great...
well.... your code must be great. You don't need the best kernel/
operating system to work. The same works for the most of the tools you
use (IMHO not the compiler and the libraries you use though). I do
think having an Ada based CVS would be awesome (as having an Ada based
build system is also). Sadly it's not the case here.. and if it were
I'd go for it.

Other nice feature of git is not git itself. Is gitosis. It makes
really easy to manage your repository using SSH keys and a given user
can have several keys. For me it's great because I work in several
machines and operating systems and if I ever got one of the keys
stolen I can go there and simply disable it.




^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  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 16:23               ` Marcelo Coraça de Freitas
  0 siblings, 2 replies; 38+ messages in thread
From: Ludovic Brenta @ 2010-08-01 10:13 UTC (permalink / raw)


Marcelo Coraça de Freitas <marcelo.batera@gmail.com> writes:
> First a small clarification. The Operating System project that was
> using monotone is AuroraUX, not AdaOS.

Lovelace OS is the other one (http://www.lovelave.fr).  This project is
more or less dormant but still sees some activity from time to time.

> They [AuroraUX] started using monotone but switched to git for a
> simple reason: monotone is VERY slow (and I do mean slow.. taking
> several hours) when cloning a given repository thanks to a bug in it
> (I don't know what exactly causes this bug).

This looks like the memory leak that was fixed in monotone version 0.27,
back in 2006.  And the latest version, 0.48, has additional performance
improvements for very large trees.

-- 
Ludovic Brenta.



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  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
  1 sibling, 1 reply; 38+ messages in thread
From: Marcelo Coraça de Freitas @ 2010-08-02 16:21 UTC (permalink / raw)


On 1 ago, 07:13, Ludovic Brenta <ludo...@ludovic-brenta.org> wrote:
> This looks like the memory leak that was fixed in monotone version 0.27,
> back in 2006.  And the latest version, 0.48, has additional performance
> improvements for very large trees.

I am not quite sure we are talking about the same bug. This has been
detected in 2009/2010 and the Edward O'Callaghan from AuroraUX was in
touch with one of the monotone developers. I don't know exactly what
happened as I had to focus on other things.



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-08-01 10:13             ` Ludovic Brenta
  2010-08-02 16:21               ` Marcelo Coraça de Freitas
@ 2010-08-02 16:23               ` Marcelo Coraça de Freitas
  1 sibling, 0 replies; 38+ messages in thread
From: Marcelo Coraça de Freitas @ 2010-08-02 16:23 UTC (permalink / raw)


A quote from http://www.auroraux.org/code.html:


Note!: org.auroraux.singularity.primary will take upwards of 20 hours
to checkout due to a bug in the version of montone being used.



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-08-02 16:21               ` Marcelo Coraça de Freitas
@ 2010-08-02 18:01                 ` Tero Koskinen
  0 siblings, 0 replies; 38+ messages in thread
From: Tero Koskinen @ 2010-08-02 18:01 UTC (permalink / raw)


Hi,

Another Monotone user and (occasional) developer here.

On 08/02/2010 07:21 PM, Marcelo Cora�a de Freitas wrote:
> On 1 ago, 07:13, Ludovic Brenta<ludo...@ludovic-brenta.org>  wrote:
>> This looks like the memory leak that was fixed in monotone version 0.27,
>> back in 2006.  And the latest version, 0.48, has additional performance
>> improvements for very large trees.
>
> I am not quite sure we are talking about the same bug. This has been
> detected in 2009/2010 and the Edward O'Callaghan from AuroraUX was in
> touch with one of the monotone developers. I don't know exactly what
> happened as I had to focus on other things.

I am not sure is the poor clone/pull performance an actual bug.

It could be related to the way Monotone is designed.

First, different sections/layers of Monotone have abstracted
interfaces. For example, you can swap network protocol or
internal change set/database implementation with another and
leave other parts untouched. This might affect performance,
although in theory the impact should be small.

Second, by default, Monotone uses backward deltas for change sets.
This means that only the files in the latest revision are stored
in their full form. Other revisions are recorded just as difference
from their child revision. To build 10th newest revision (head-9)
you need to apply deltas from head-1 to head-9 on top of head.
And to build the first revision, you need to apply all deltas.
The recent versions of Monotone also support forward deltas, but
they need to be turned on explicitly, because then the disk space
usage increases.

Third, before sending or receiving anything, Monotone calculates
sha1 checksums for the data. I am not totally sure, but I think
that when you request full clone of a repository, Monotone
constructs each revision (using those backward deltas) from first
to latest and calculates checksums for them. This ensures
data integrity but also takes somewhat long time. There have
been experiments where the checksum calculation/checking has been
removed and it has shown performance boost, but developers prefer
to have those checks on. That checking has revealed data corruption
and disk failures on real systems before operating system's own
mechanisms have detected anything.

Some references:
6 minute pull CPU time for AuroraUX with no checking:
http://colabti.org/irclogger/irclogger_log/monotone?date=2010-02-12#l7
  (No idea what was the actual wall clock time.)

20% increase in pull time for AuroraUX:
http://colabti.org/irclogger/irclogger_log/monotone?date=2010-02-09#l147
  (This improvement is in 0.47 or 0.48)


-Tero



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-30 20:56   ` Karel Miklav
  2010-07-31  7:29     ` Pascal Obry
@ 2010-08-03  4:21     ` Randy Brukardt
  1 sibling, 0 replies; 38+ messages in thread
From: Randy Brukardt @ 2010-08-03  4:21 UTC (permalink / raw)


"Karel Miklav" <karel@lovetemple.net> wrote in message 
news:i2ve9u$1qg2$1@adenine.netfront.net...
> deadlyhead wrote:
>> For those who like Monotone: is using a "real database" really that
>> much of advantage?
>
> Where the hell this meme still draws the power from? I have not seen a 
> real application with a bunch of files at its core for a long time and I 
> do not really believe you are not aware of advantages of database over the 
> filesystem.

Well, let's see. Pretty much every Ada compiler uses the file system rather 
than some sort of database at its core. Would you claim that GNAT is not a 
"real application"??

Personally, I think there is way too much use of "real databases" for 
programs that will find no real advantage to them. When you use an SQL 
database as part of your program, you are introducing communcations issues, 
a second programming language (with all of the problems that mixed language 
programming entails), an additional large piece of software that needs 
separate maintenance and patching (many attacks occur through databases), 
and huge waste of resources. The latter isn't as important as it once was (I 
still think any program over 4 megabytes is amazingly bloated; given that 
most computers have more than 1GB of memory, that probably isn't quite 
true), but the other factors still are true.

There clearly are applications that benefit from a database (as when there 
is actually data that needs to be searched/indexed), but for most 
applications (especially the smaller ones), the costs of a database outweigh 
the benefits.

                                                     Randy.





^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: What is your preferred VCS?
  2010-07-28 23:18 What is your preferred VCS? deadlyhead
                   ` (6 preceding siblings ...)
  2010-07-31 11:58 ` Alex R. Mosteo
@ 2010-08-13 20:23 ` nobody
  7 siblings, 0 replies; 38+ messages in thread
From: nobody @ 2010-08-13 20:23 UTC (permalink / raw)


I like CM/Synergy. It was actually the first one I came in contact with 
and it has everything I need and then some.

One special thing that I miss in all the others I have tried is 
task-based cm.
The main thing that give me is the ability to check out files into a 
task and when the fix or new function is finished you just say complete 
task and all the files affected are checked in for you.
You can naturally have many tasks active in parallell and updating your 
working project is based on what tasks have been completed.




^ permalink raw reply	[flat|nested] 38+ messages in thread

end of thread, other threads:[~2010-08-13 20:23 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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

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