Slashdot Mirror


Tom Lord's Decentralized Revision Control System

Bruce Perens writes: "He'll have to change its name, but Tom Lord's arch revision control system is revolutionary. Where CVS is a cathedral, 'arch' is a bazaar, with the ability for branches to live on separate servers from the main trunk of the project's development. Thus, you can create a branch without the authority, or even the cooperation, of the managers of the main tree. A global name-space makes all revision archives worldwide appear as if they are the same repository. Using this system, most of what we do using 'patch' today would go away -- we'd just choose, or merge, branches. Much of the synchronization problem we have with patches is handled by tools that eliminate and/or manage conflicts -- they solve some of the thorny graph topology issues around patch management. Arch also poses its own answer to the 'Linus Doesn't Scale' problem. This is well worth checking out." If you're asking "What about subversion?", well, so is Tom.

7 of 291 comments (clear)

  1. This sounds like it could be good, if... by eric_aka_scooter · · Score: 3, Interesting
    I used to work for a company (let's call them ACME, because I don't want to be sued) whose hq was on the other side of the contry, and with programming groups all around the world. We used VSS, with the server at HQ, and it literally took 10 seconds or more to change directories, and much longer to retrieve or update! This hobbled our office's ability to work (HQ didn't care, they just made us work weekends to make up for the loss of efficiency).

    A more distributed source control system could obviously circumvent problems like these, but with this caveat: the code that different groups work on would need to be sufficiently black boxed that most changes wouldn't require changes in other projects. It's just good programming style, but I know that this wasn't the case at ACME, and given my experiences with Corporate America I doubt it's true in most places. Maybe I'm just being pessimistic...

    Anyway, it sounds like a good idea if it's used right.

  2. sounds like ClearCASE by ethereal · · Score: 3, Interesting

    The ability to do distributed development, manage multiple (possibly hostile or private) branches at once, good merge and diff tools, etc. sounds sort of like ClearCASE. Except of course that ClearCASE costs money, and doesn't have the global namespace thing going on. Rational had better be careful or their customers are going to move over to arch (especially since their Unix GUIs have sucked more and more with each successive release).

    Bravo to the author on this tool - it sounds like a great advance of the state of the art if it works like he says.

    --

    Your right to not believe: Americans United for Separation of Church and

  3. Re:As a replacement for patching? by patnotz · · Score: 5, Interesting

    Whether Alan Cox (or whomever) uses patches or some other source control (like arch) (a) you still have to download the software from a remote site (i.e., the Net) and (b) Alan still has control over what makes it into his repository.

    The point is that it allows separate developers (AC, AA, LT, etc. in the kernal case) all to maintain their OWN trees while enjoying the powers of source control software. The added benefit of arch is that their separate trees are all connected without having to give write-permission to each other.

  4. From his faq by Anonymous Coward · · Score: 3, Interesting
    On, subversion and arch...


    Both systems provide repository transactions with ACID
    properties.



    ACID (Automicity, Consitancy, Isolation and Durability) is only something that has been implemented and tested well on high read RDBMS such as Oracle.

    When you think about that, why is it that no one is using a DB backend to source control? Wouldn't that just get rid of so many ambguities? For one, we wouldn't have to deal with all the nonsence and create a million wheels, when a nice pair of rolls royces resides with a good RDBMS.

    People need to think outside their brains, and in regard to source control, I feel we need to make more packages that interface well with a good RDBMS rather than create our own RD functionality in 40ks. What's the use?

    Anyone know a good system of incoroprating source control with a databases? Oracle and Postgres would do.
  5. Confusion about version numbers. by Kaz+Kylheku · · Score: 3, Interesting
    Branching notation should be clear and to the point. CVS has it's magic numbers, StarTeam has god awful views. Let me choose the numbering scheme, don't play games with odd/even numbering. Version numbers should not be overloaded to carry additional meta-information by the product.

    This is incorrect. The CVS numbers are internal. If you care about them at all, you are doing something wrong. Your baselines and branches are identified by tags. If you understand how the CVS numbers work, they are actually quite logical; there are reasons why they work they way they do. It's not play ``games''.

    Version numbers *are* meta-information, so it's meaningless to talk about them being overloaded with metainformation. They are not intended to correspond to your product release numbers, which are usually the fabrications of a marketing department anyway, like e.g. Solaris 7 being the followup to 2.6. Do you think the Sun guys bumped up their version control system to use the number 7? ;)

  6. Version 1.0, Maybe? by Christopher+B.+Brown · · Score: 3, Interesting
    FTP is there. It's there on all sorts of systems. It was sufficient to get it working.

    I'm sure that down the road it would be a very slick thing to the rsync protocols for data transfer between sites, as implemented in rsync and Unison. That would provide all sorts of ooey-gooey- encrypted, compressed goodness to help network connections be used more efficiently.

    The file transfer protocol isn't nearly as important as how it deals with versioning, logging, and thie likes, to be sure...

    --
    If you're not part of the solution, you're part of the precipitate.
  7. Everything a flavor of Unix? by Christopher+B.+Brown · · Score: 3, Interesting
    Pretty much, these days.
    • OS/390, a branded Unix.
    • BSD, a non-branded Unix.
    • Linux Standard Base.

      The standard that SCO, Solaris, and *BSD can probably all conform to.

    • Windows NT.

      With its POSIX subsystem.

    • OS/400

      With its POSIX subsystem

    • Mac OS/X

      With BSD underneath.

    I suppose Tandem may not be emulating a flavor of Unix, but who's got one of those at home? PalmOS isn't a Unix-like system, but it's getting pretty long in the tooth, and isn't a tremendously viable platform for arch anyways.

    It's not outrageous to suggest that Unix has effectively "won" the mind-share war.

    --
    If you're not part of the solution, you're part of the precipitate.