[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnu-arch-users] What is arch? (Alternative answer)

From: Pierce T . Wetter III
Subject: Re: [Gnu-arch-users] What is arch? (Alternative answer)
Date: Wed, 25 Feb 2004 08:21:26 -0700

On Feb 24, 2004, at 11:09 PM, Robert Anderson wrote:

Pierce T. Wetter III wrote:

I think arch is better at working the way developers actually work, as opposed to the way that its easiest to write a revision control system. So I think that's worth trumpeting.

It's a nice thought and probably true in many respects, but is too vague as stated. How, specifically?

Your "not a tree, but a spiderweb" line just doesn't have any substance, and is probably more misleading than anything. Your "good merging capabilities" line is true, but it's also been on every bullet list that's been drawn up for, oh, a few years now.

Well, I don't have to be perfect, I just have to be better then what's in the tutorial now. :-)

 How about this:

With CVS and most other "central repository" systems, code is structured as a tree, with some concept of a trunk that represents the main line of development. Since 90% of most development work consists of making small changes to the main line, this works well for those cases. The problem comes in when a developer or set of developers has to make a large change, one that will possibly break a large chunk of the code for a long while. That's when branches come in. The problem is that branches don't generally work that well in practice with most of these systems, because development doesn't just branch it actually proceeds in parallel. So most of these systems are great at branching, but lousy at merging.

With arch, change history works more like a network of interconnected trees, with the capability of merging changes between any two trees. Starting a new tree is easy, and linked to the old tree, so trees can be built as needed. With easy to make trees each developer will often have their own tree, which they can share with others. Or a new tree can be started based around a new task. While that sounds more complicated then having one central tree, in practice, it turns out to be easy, and closer to how developers actually work.

 That better?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]