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.

291 comments

  1. POSIX! by ekrout · · Score: 3, Funny

    In his FAQ he states it works on any system that's POSIX compliant.

    /me high-fives Tom

    --

    If you celebrate Xmas, befriend me (538
    1. Re:POSIX! by Anonymous Coward · · Score: 0

      Only problem with POSIX is that it doesn't have the sanity and nerdness of function calls such as 'scandir', instead we are rendered to the dummed down 'dirread'. BSD has so much more sanity than all these new fanged, microsoft funded, pseudo standards.

    2. Re:POSIX! by Anonymous Coward · · Score: 0

      posix is not a ms standard... its a unix standart...

      and your parent is just whoring for karma

    3. Re:POSIX! by Anonymous Coward · · Score: 0

      winnt has posix implementaitons. google.

    4. Re:POSIX! by Anonymous Coward · · Score: 0

      He says it should work. When was the last time you saw something work 100% the same on every system that claims to be POSIX compliant?

    5. Re:POSIX! by Anonymous Coward · · Score: 0

      "Microsoft Corp. (Redmond, WA) funded $35 million in to the creation of the first POSIX.1 standard (REUTERS), though their implementation is limiting."

    6. Re:POSIX! by Anonymous Coward · · Score: 0

      Yes, it is written in bourne shell script!

    7. Re:POSIX! by thing12 · · Score: 1

      Yes, of course is does, but that does not make POSIX a Microsoft funded standard. It's a standard that was developed purely to give a high level of interoperability between the various unixes from different vendors. It's also been around since the mid 80's and back then Microsoft didn't give a damn about being compatible with unix. And to go even further, it's worth noting that the name POSIX was suggested by the one and only RMS.

    8. Re:POSIX! by Anonymous Coward · · Score: 0

      Ever hear of Microsoft Xenix? MS was certainly involved in POSIX, that is until they got wise that sending money to AT&T was a bad idea.

    9. Re:POSIX! by thing12 · · Score: 1

      They never even released a version of XENIX with processor support past the 8086... The last Microsoft release of XENIX corresponded with the release of the IBM PC/XT (1984). POSIX.1 was ~1986. The versions of XENIX that supported 286/386 were developed by SCO, not Microsoft. I really don't believe - nor can I find any evidence - that Microsoft had anything to do with the development of the POSIX standard. Call me a skeptic, but I'd just like to see proof to back up that other post saying they spent $35 million.

  2. why FTP? by devphil · · Score: 5, Insightful

    I guess I'm wondering why arch uses FTP as its network protocol. The FAQ says that it should be workable behind firewalls since the data is all transferred in passive mode, but this still seems like a huge step backwards.

    So, what am I missing? I only got to read a little bit of the site before it got DDOS'd by slashdot.

    --
    You cannot apply a technological solution to a sociological problem. (Edwards' Law)
    1. Re:why FTP? by Anonymous Coward · · Score: 4, Insightful

      I guess I'm wondering why arch uses FTP as its network protocol.
      It's because this "Decentralized Revision Control System" is just a guise for a p2p filesharing. It's really cool: you check in all your files and they automatically get replicated, having become part of the "master tree". No one can shut down the master tree. No one can tell you not to put your files there. (Hey, it's part of my project!)
      Slick.

    2. Re:why FTP? by FlowerPotAdmin · · Score: 2, Insightful

      I guess I'm wondering why arch uses FTP as its network protocol.

      Well, the article mentioned that arch consisted of a bunch of shell scripts and some C code, so it looks like ftp was just an "off the shelf" component that the author could make good use of.

      --
      -Justin
      That's enough posting for now lads, there're trolls afoot.
    3. Re:why FTP? by curunir · · Score: 5, Insightful

      hmm...

      wouldn't rsync over ssh have been a much better choice for an "off the shelf" component? Most ftp servers tend to have a few (read: waaaaay tooooo maaaany) security concerns for my taste.

      --
      "Don't blame me, I voted for Kodos!"
    4. Re:why FTP? by GigsVT · · Score: 3, Insightful

      or even scp for that matter...

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    5. Re:why FTP? by MadAhab · · Score: 3

      Rsync works (nowadays, I believe, by default) over an SSH connection, but unlike FTP or scp, it doesn't have to transmit the whole file... only the parts that change. So it could be part of an effective version control system.

      --
      Expanding a vast wasteland since 1996.
    6. Re:why FTP? by Anonymous Coward · · Score: 0

      It seems to me that putting all of the intelligence for a source code control system, and coordinating through FTP, is going to make the system very brittle (because it forces every client to be aware of all of the internal implementation detail of the file store). Every time there's a functional change in the arch system, won't every arch client have to be modified to support that change, and do so in a way that doesn't cause any version incompatibility with other users using other clients? It also means that any ill behaved client could really screw things up. Admittedly I don' t know anything in detail about arch, but from the quick descriptions, it sounds like a mess to me.

      So what am I missing?

      Personally, I like the way ClearCase handled this -- it keeps all of the complexity under the covers, and presents a nice simple view to the developer and his tools. It's just a nice, smart NFS server... (that happens to understand versioning, and have very nice management tools).

    7. Re:why FTP? by HereTheDogIsBuried · · Score: 1

      Rsync works over ssh only if you order it to do so with rsync -e ssh

      Rsync has its own protocol that can be used to contact an rsync server, but this is a setup that isn't widely used.

      rsync over ssh requires a login to the remote machine which is likely not to be available for a distributed cvs.

    8. Re:why FTP? by rapid+prototype · · Score: 0

      um... if it is an open source program, why are you that concerned about who is seeing the data flow? or are you talking about 'someone breaking into my system' level security concerns? and obviously it is faster, and much more scalable, if the server doesn't have to encrypt every file as it sends it.

      -rp

    9. Re:why FTP? by Sarcazmo · · Score: 1

      Yeah, but so far (unless I am doing something really wrong), rsync over ssh here locally is dog slow, something like 600 KILO bytes/sec over gigabit!

      I'm going to troubleshoot it eventually, but I think a lot of it just has to do with the way rsync works.

    10. Re:why FTP? by Sarcazmo · · Score: 1

      FTP requires a login to the machine too... maybe not one with shell access, but still an account must be created.

    11. Re:why FTP? by MadAhab · · Score: 1

      Nope, nothing to do with the way rsync works. Check for version mismatches on the ends; I've seen slow connections and weird stuff happen ONLY when certain versions interact with certain other versions, though SSH versions seemed to be implicated as well. I've been using rsync on a variety of machines for 3 years.

      --
      Expanding a vast wasteland since 1996.
    12. Re:why FTP? by MadAhab · · Score: 1

      True about the login requirements, but recent versions of rsync use ssh by default. The server setup isn't more widely used because most people aren't using it for source code trees. 22.

      --
      Expanding a vast wasteland since 1996.
    13. Re:why FTP? by Misagon · · Score: 1
      There is only one broadband operator in the area where I live, offering broadband for the same price as what I currently pay for dial-up access to the Internet. I choose dial-up, for the simple reason that the broadband operator's firewall doesn't let SSH or CVS through. I have been nagging at them for over a year about this, but to no avail. I assume that many other people would be in the same situation like me.

      From the little that I know, FTP should have support for partial transfer of files, or at least be extensible. When it comes to security I would expect that a system like this would have its own bare-bones implementation of the FTP protocol, thus avoiding most of the types of security holes that major FTP servers might have.

      --
      "We mustn't be caught by surprise by our own advancing technology" -- Aldous Huxley
    14. Re:why FTP? by ghostie · · Score: 1

      One of the problems of CVS is the difficulty involved in getting it to work through a firewall (or proxy). At least FTP will work through most if not all proxy servers (so you can work on your favourite open source project when you are supposed to be slaving away on a commercial project).

  3. And others by Ed+Avis · · Score: 4, Insightful

    Not only 'what about Subversion' but also 'what about CVS, what about Aegis'. If you include non-free systems then what about Perforce or Bitkeeper.

    This is getting worse than journalling filesystems :-(.

    --
    -- Ed Avis ed@membled.com
    1. Re:And others by Anonymous Coward · · Score: 0

      This is getting worse than journalling filesystems :-(.
      What do you have against journaling filesystems?
      Oh, wait, I know. You like to have a nice long coffee in the morning while you fsck those 80 gigs.

    2. Re:And others by BdosError · · Score: 1

      I believe he was complaining about the proliferation of competing journalling file systems, not about journalling filesystems themselves.

      --
      Complexity is Easy. Simplicity is Hard.
    3. Re:And others by Ace+Rimmer · · Score: 1

      This piece of software should kick cvs off the door. It should also provide even something like ViewCVS (cvs web interface by Greg Stein, author of Subversion).

      It has about 40k of sources.

      Umm, it's either an ingenious piece of software xor bullshit and plain kidding using strong words.

      --

      :wq

    4. Re:And others by FlowerPotAdmin · · Score: 2, Insightful

      If you include non-free systems...

      Unfortunately, for some people/projects that's not a n option.

      This is getting worse than journalling filesystems :-(

      I can see how you would feel this way, but keep in mind, a healthy number of different implementation ideas and design philosophies can only hasten the development of open source tools.

      --
      -Justin
      That's enough posting for now lads, there're trolls afoot.
    5. Re:And others by njm · · Score: 1

      This is getting worse than journalling filesystems :-(. Well, like it or not, that's more or less the sentiment after which this piece of versioning software is going.

    6. Re:And others by Anonymous Coward · · Score: 0

      don't use he to refer to a previous poster. if you know his or her name from nick or .sig, then use it. assuming he is sexist.
      your parent was done by me also. I was just making a crack, I knew what Ed meant. Maybe I'll whore +1, maybe not. who knows.

    7. Re:And others by Polo · · Score: 3, Informative
    8. Re:And others by Florian+Weimer · · Score: 2

      Aegis does not only deal with source code management, but can be used to enforce a development process which includes steps like testing and peer review.

      You can implement the same thing using arch or CVS, of course, but Aegis offers much more structure in this regard.

  4. er... by Anonymous Coward · · Score: 3, Funny

    A global name-space makes all revision archives worldwide appear as if they are the same repository
    I don't know whether to laugh or cry...

    1. Re:er... by coyul · · Score: 2, Interesting

      I don't see this as a big deal (or a big problem) at all. If you simply prefaced the name of each module with the fully qualified domain name of the server it happens to be sitting on, you'd accomplish this painlessly. This is already recommended practice for third-party Java developers (a package called 'widget' developed at acme.com would be called com.acme.widget)

    2. Re:er... by FlowerPotAdmin · · Score: 2, Insightful

      So, if I develop something useful, it would be called edu.cornell.resnet.jmk63.widget? A little unwieldy, methinks. I suppose it works as a unique identifier, but what if I graduate and I no longer have control of that location? Back to the arch example, if merging code trees is done without a full copy, anyone who is patching against my code tree (or even anyone patching against them) is out of luck.

      --
      -Justin
      That's enough posting for now lads, there're trolls afoot.
    3. Re:er... by Anonymous Coward · · Score: 0

      but what if I graduate and I no longer have control of that location?
      I love it! Not "but what about when I graduate?" but "but what if I graduate?"
      In these days of LAN addiction, that's becoming a bigger and bigger if.
      Paul.
      (Currently taking a second bachelors on campus).

    4. Re:er... by FlowerPotAdmin · · Score: 1

      Hey, you know what I mean. If "I" am the average user, then I may or may not be a student, therefore I may or may not graduate.

      --
      -Justin
      That's enough posting for now lads, there're trolls afoot.
    5. Re:er... by malachid69 · · Score: 1

      I agree that 'edu.cornell.resnet.jmk63.widget' can be a bit unwieldy, but let's take a moment to look at what we are really saying.

      If you develop something FOR Cornell, then it should be in their package name, and you aren't allowed to take it with you (just ask HP).

      If you are developing it FOR yourself, then it should not be in Cornell's package name.

      Realistically, a domain name cost what, $8.95/yr? If you really plan on creating lots of widgets and would like to maintain them for yourself (inside and outside of college), then just buy your own domain and use that.

      But, as I said, the package name you gave is too long.

      --
      http://www.google.com/profiles/malachid
    6. Re:er... by Anonymous Coward · · Score: 0

      ack

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

    1. Re:This sounds like it could be good, if... by brucet · · Score: 1

      Apparently, Microsoft doesn't even use VSS for its larger internal projects, they use something called SLM (Source Library Manager.)

      -Bruce

    2. Re:This sounds like it could be good, if... by Therin · · Score: 1

      For those of you sentenced to using VSS, there is a much speedier front end to it, called SourceOffSite. Makes even modem access feel fast - it makes VSS into true client-server.

      Check it out here.

      --
      John 17:20
    3. Re:This sounds like it could be good, if... by kubrick · · Score: 2

      (let's call them ACME, because I don't want to be sued)

      Have I got news for you!

      (But it seems to be a personal company, so maybe he won't sue :)

      --
      deus does not exist but if he does
    4. Re:This sounds like it could be good, if... by senderista · · Score: 1

      No, they now use Source Depot (completely command-line based [but Perl module and tons of GUI's available], VERY fast).

      --
      "It amounts to the same thing whether one gets drunk alone or is a leader of nations." -- Jean-Paul Sartre
  6. As a replacement for patching? by Sludge · · Score: 5, Insightful

    That sounds like hype. In the real world, selecting the aspects of software we want to compile from on remote sites would have serious implications. The first being security. The second being quality. Linus may not scale, but he has good judgement. That's the fundamental problem.

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

    2. Re:As a replacement for patching? by Anonymous Coward · · Score: 0

      In the real world, selecting the aspects of software we want to compile from on remote sites would have serious implications. The first being security. The second being quality.
      I'll let you in on a little secret. The reason Microsoft's bloatware is the most popular is because it's exactly what marketing wants it to be, and marketing consists of people who spend all their time looking at people.
      Until you can show me a system where a ten million line source tree will EVOLVE into the slickest overall interface between the computer and the user, you won't convince me that Microsoft is dying on the desktop. Linux coders code well. They don't have direction. They write slick code, slick modules, and cram in every feature that saves them a minute or a keystroke, even at the cost of an hour or two of hard programming.
      Microsoft, from what I hear, takes it time about churning out some of the ugliest code you can imagine.
      It is a beast, however, with a direct.
      And believe me, if The Beast walks by jumping two just steps forward, two feet together, then one just step back, and keeps repeating it, it will get FARTHER toward the mountain than a person doing stunts on a bicycle, with no real idea of where he or she's going, but looking damn fine doing it.
      As for your first point ("what about 'security' if you're grabbing source from across the world?"), I'll let you in on another little secret: it's called asymmetrical public key encryption. It means that I can pass you a note the WHOLE WORLD sees, can change, and knows just what protocol we agreed on for passing notes, and you can pass me a note back, which the WHOLE WORLD sees, can change, and knows just what protocol you used to write it, and NO ONE will know what the notes say, and you and I will BOTH know (after one more similar receipt ticket) that we BOTH got EACH message the other person said, and that NO ONE else got it. Furthermore, we know that even if the other person is EVIL, he or she CAN'T mess up our interaction with anyone else, CAN'T understand the content of the messages passed to anyone else, blah blah blah blah blah. You get the point. God, how lame is this.
      This is all the information you need (that is, if you trust that you're getting it the same as I'm sending it, which you could, for example, if I'm reading it to you on the phone. But slashdot's pretty reliable usually, unless someone is personally out to get you):
      5728 B7C3 EF1F 91F2 E35B
      4AB7 C5D2 5BF1 79E9 4382 (fake).
      After this, you can send me a message no one else can read. I can reply, no one else can see.
      This doesn't interfere with anyone else also sending me independent shit. grow up. I'm drunk.

    3. Re:As a replacement for patching? by JabberWokky · · Score: 3, Insightful
      And believe me, if The Beast walks by jumping two just steps forward, two feet together, then one just step back, and keeps repeating it, it will get FARTHER toward the mountain than a person doing stunts on a bicycle, with no real idea of where he or she's going, but looking damn fine doing it.

      Right - and along with that guy doing stunts are three hundred thousand others trying to get to the mountain... some on bikes doing tricks, some with their heads down and pedaling in a direction (it might even be a "wrong" direction, and they find a new mountain), and they might be driving a HumVee, Porche or F-15.

      If you look at the recent (and ongoing) Limux VM fight, it looks the exact same as any inhouse coder fight - the exact sort of thing Microsoft encourages (there are often two parallel projects working towards the same goal). The only difference is that the OS designs don't have to be killed by bugetary contraints... they go on until there is a clear winner. And there are branches of code (like GUI design) where there *is* no clear "better" solution. That's where you get many parallel projects, all just getting better and better or heading for different niches (Blackbox vs. KDE for example).

      --
      Evan

      --
      "$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
    4. Re:As a replacement for patching? by JabberWokky · · Score: 2
      The only difference is that the OS designs don't have to be killed by bugetary contraints

      Addendum: That "OS" stands for Open Source, not Operating System. Just for clarification.

      --
      Evan

      --
      "$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
  7. 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

    1. Re:sounds like ClearCASE by sirinek · · Score: 1
      You mean Rational even still supports anything on a non-Windows platform?!

      Seriously though, I've been a Clearcase user and administrator on both Win2k and Solaris systems, and it will be a LONG time before anything like this beats Rational. MultiSITE (or does it have a different name these days?) is a great product if you are doing distributed development.

      Who cares about the UNIX gui anyway, aside from the nice diff tool, its easier to use the command-line Clearcase commands. Lots of commercial GUI development tools support integrating Clearcase anyway.

      siri

    2. Re:sounds like ClearCASE by Chris+Parrinello · · Score: 1

      Pbbbt... who actually uses the Unix GUIs with ClearCase? The only GUI to use with clearcase is xlsvtree and even then only as a reference to compose your cleartool command line command. :)

      The cleartool command line command set and options are extremely powerful and highly scriptable. Why waste your time clicking around to do a main line merge from a development branch when one simple findmerge command can do the same thing?

    3. Re:sounds like ClearCASE by steve_l · · Score: 1

      the trouble with clearcase is in yor post: "clearcase administrator". Its an RCS tool -why does it need full time hand holding to be happy.

      Also, regarding their windows support, that sucks too, just differently. Doesnt work on notebooks with DHCP network addresses, for example.

    4. Re:sounds like ClearCASE by Anonymous Coward · · Score: 2, Informative

      Except of course that ClearCASE costs money
      Actually, I wrote an open-source implementation here (with a few additions: mounting the repository as a filesystem, and a couple of other things as I note them.). Actually, I didn't really "write" it, just cleaned it up a little (besides these additions).. The original "implementation" in open source is just the output of program to turn my reverse engineered bytecode into pretty object code. Then I gave it names and stuff.
      NOTE: You can only do this with COPYRIGHTED but UNPATENTED software. You can't circumvent a patent by reimplementing it with different control structures and variable names. You CAN do so with a copyright. If the binary is totally different (based on objectification), then so is the content. (This is the "clean room" reimplementation you sometimes hear about.)

    5. Re:sounds like ClearCASE by ethereal · · Score: 1

      You'd get no argument from me, except that they f*cked up the xlsvtree too :( For example, when doing a merge, you used to get to pick both files in the same window, but now it pops up a separate window and forces you to find the version again. Not to mention the lame tool that comes up (eventually) when you do a describe.

      It's true that I wouldn't use the GUI under any OS to do a merge for a bunch of files.

      --

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

    6. Re:sounds like ClearCASE by ethereal · · Score: 1

      Most of the babysitting the ClearCASE needs is with regards to the multisite/distributed development environment. Since it was originally geared for an environment where sites weren't always connected, it does a UUCP-like synch process where it sends packets of changes with monotonically increasing revision numbers, etc. If you have an import of a packet mess up then you have some work to do to straighten it out, because ClearCASE isn't really smart enough to. This is not a full-time job (well, at least not at my site), just a little trouble-shooting now and then. But if the arch tool can handle multisite development in a distributed and less-coupled way than ClearCASE, then it really might be time to switch.

      Oh yeah, ClearCASE does have one nice feature in common with arch that CVS lacks: it does treat directories and files as elements separate from their names, so you can rename things and even remove files from directories without actually losing the element and its associated revision history.

      --

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

    7. Re:sounds like ClearCASE by Anonymous Coward · · Score: 0

      This 'katie' project sounds very interesting. What file format do you use underneath Katie? An RCS or CVS structure or something that is compatible with Rational's files? Can you have remote clients (over the internet)? What exactly do you mean by 'reverse engineered bytecode'? Reverse engineered from what?

    8. Re:sounds like ClearCASE by hondo77 · · Score: 1

      Oh yeah, ClearCASE does have one nice feature in common with arch that CVS lacks: it does treat directories and files as elements separate from their names, so you can rename things and even remove files from directories without actually losing the element and its associated revision history.

      This is something that Subversion also addresses, which is why the Linux Journal article is very interesting.

      --
      I live ze unknown. I love ze unknown. I am ze unknown.
    9. Re:sounds like ClearCASE by Geoffrey+D.+Bennett · · Score: 1

      I'm not sure who the "I" in the sentence "I wrote an open-source implementation" is, but it's not me (the author of Katie, the linked-to project). I have no idea as to what the author of that comment is talking about WRT "reverse engineered" and "bytecode".

      All of the Katie code (with the exception of the SunRPC and Perl RPC interfaces) is my original work. It is designed so that the user interface is similar to ClearCase, but I have done no reverse-engineering apart from reading the CC docs and observing the CC user interface.

    10. Re:sounds like ClearCASE by Anonymous Coward · · Score: 0

      >Doesnt work on notebooks with DHCP network addresses, for example.

      Nonsense.

    11. Re:sounds like ClearCASE by Anonymous Coward · · Score: 0

      I thought the other guy was a complete crackpot. Perhaps you can answer my questions about 'katie' then:

      What file format do you use underneath Katie? An RCS/CVS structure or something that is compatible with Rational's files? Do you do versioning on directories as well as support renaming files and directories? Can you have remote clients (over the internet)?

    12. Re:sounds like ClearCASE by Geoffrey+D.+Bennett · · Score: 1

      I'm using PostgreSQL to store all the metadata, and regular files for each revision. A storage manager is in the works to allow RCS, xdelta, or whatever backend storage you want. At the file/database level, Katie is not compatible at all with ClearCASE -- it's only compatible from the user interface POV.

      LAN "Remote" clients yes (I'm using NFS). Internet-remote clients no (NFS is obviously too slow). There are plans to make that work nicely, but I'm working on getting the local stuff happening first.

      I didn't write the comment about 'reverse engineered bytecode'. I have no idea what the author of that comment is talking about.

    13. Re:sounds like ClearCASE by mrm677 · · Score: 1

      Clearcase is a VFS (virtual file system). I set a "config_spec", do a 'ls', and I see the files I want. That is why CVS is a child's toy to me.

    14. Re:sounds like ClearCASE by Anonymous Coward · · Score: 0

      And the underlying data store is implemented on top of Raima dbVista.

      Bleh, ClearCase sucks.

    15. Re:sounds like ClearCASE by steve_l · · Score: 1

      huh. you check something out from one IP address; cant check it back in on another. we had to be given fixed IP addrs and couldnt work properly on my notebook.

      Maybe the latest version of ccase has fixed that; I blissfully uninstalled it after leaving a project.

      What I dont know is if you still have to reboot the system on a regular basis whenever it starts to get 'confused'. What really scares me about it though is if anything goes wrong, your local copy of the source just disappears, albeit temporarily, though I think that is my own fault for using winnt; on linux it is more robust.

    16. Re:sounds like ClearCASE by steve_l · · Score: 1

      Agreed, clearcases handling of file names and dirs is better than CVS, and It does great branching...I should pull down subversion and try it.

      I guess it will work over SSH as well as or better than CVS, which is one of the great CVS features I like, not just for committing changes to sforge or apache, but to my home server from work.

      -steve

    17. Re:sounds like ClearCASE by Anonymous Coward · · Score: 0

      Do you plan to support the concept of views and rules in Katie?

    18. Re:sounds like ClearCASE by Tremul · · Score: 1
      ClearCASE is terrible. I had to administer it for several months while I worked as an intern. It is absolutely TERRIBLE. Lets go over the lists of problems.

      • 1) Terrible Network support. If there is a hicup in the middle of transfering a file then ClearCASE completely dumps core. It just can't handle network hicups.
      • 2) Deleteing files on the server is all but impossible. To remove a file from the server you have to delete it 4 DIFFERENT WAYS. This resulted in creation of many scripts
      • 3) ClearCASE is extremely fault INTOLERANT. Whenever a workstation craps, you have to trash parts of the database just so that workstation can run ClearCASE again.
      • 4) There are files on ClearCASE that simply CANNOT be deleted no matter what you try.
      • 5) Their customer support is terrible.


      I've spent many hours on the phone with customer support. Not fun.
      --

      "Can't sleep. Clowns will eat me"
    19. Re:sounds like ClearCASE by Anonymous Coward · · Score: 0

      YO!!!! I cannot BELIEVE how successful my troll was.
      man.

    20. Re:sounds like ClearCASE by Anonymous Coward · · Score: 0

      Incidentally, how did you find my linking you?
      Do you regularly grep the full comment tree of each slashdot article to see if there's a link to any of your projects?
      AC.

    21. Re:sounds like ClearCASE by gstein · · Score: 1

      You don't need to run a separate SSH tunnel (or even have an account on the server) to run Subversion securely. Since Subversion uses HTTP, we simply use SSL for our authentication and encryption.

      For example:

      $ svn co https://mysite.example.com/repos/project/

      Nothing hard about that :-)

    22. Re:sounds like ClearCASE by Deusy · · Score: 1

      What do you get out of pretending to be somebody else? "Actually, I..." Are you one of these peopel who regularly pretends to be others just to convince himself he's not a sad loser?

      --

      Free Gamer - Free games list and commentary

    23. Re:sounds like ClearCASE by ethereal · · Score: 1

      If you didn't take the ClearCASE admin class before diving in (likely if you're an intern) then I do pity you. But it's not that hard to deal with if you've had the training.

      What version were you using that dumped core? I think I've seen ClearCASE client processes do that maybe twice, and the server processes never. Although it could be that our network is just too damn stable around here :)

      How to delete a file: "cleartool rmelem". One command does it all, if you're the admin. Of course, if you want to remove a file from a directory but still keep all the versions you can use "rmname", or other commands - it just depends on what you're trying to accomplish.

      I've never seen a workstation rendered unusable by a ClearCASE problem - in the worst case I've had to remove the view and recreate it, which I guess sort of counts as destroying a database. But even a broken view won't prevent use of ClearCASE in other views on the machine. Unless this is a Windows ClearCASE bug?

      The only file that you can't destroy in a ClearCASE vob is the /lost+found directory, because it's part of the filesystem. Everything else is mutable if you have appropriate admin permissions.

      Never tried their customer support - I'd suggest going to a newsgroup or searching the web for help first. There are a lot of very knowledgeable ClearCASE admins (of which I am not one :) out there who can help.

      --

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

    24. Re:sounds like ClearCASE by Anonymous Coward · · Score: 0

      I'm a fan of ClearCase, but once it gets corrupt - game over. It is basically unfixable - even with $10,000/day Rational support. Better hope your backup tapes are fine.

    25. Re:sounds like ClearCASE by ethereal · · Score: 1

      If you're multisited, it's easier to abandon your current replica and restore from a remote replica. Depending on your synchronization versus backup schedule, the remote replica might be more up-to-date anyway.

      --

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

    26. Re:sounds like ClearCASE by Anonymous Coward · · Score: 0

      Look, I'm AC.
      I'm not a "person."
      If you click AC, you can reply to this post with "I take it back, I was wrong", and you won't be "impersonating" me, since I'm just an AC.
      See?
      Now go fuck a dog.

    27. Re:sounds like ClearCASE by Geoffrey+D.+Bennett · · Score: 1

      File and directory revisions, branches, labels, dynamic views, and config specs are all already implemented and working nicely. You should try it out :-).

  8. Question by Taco+Cowboy · · Score: 2, Offtopic



    Other than CVS and arc, are there any other (GPL)software revision control system available, and how best you rate them ?

    --
    Muchas Gracias, Señor Edward Snowden !
    1. Re:Question by rbgaynor · · Score: 2, Funny

      Do yellow Post-It notes stuck to the bezel of my monitor count?

      --
      "Good things don't end with eum, they end with mania or teria." - H. Simpson
    2. Re:Question by Anonymous Coward · · Score: 0, Informative
      Mr. Cowboy,

      The only other system in "widespread" use is GNU RCS. GNU RCS is different in that it's actually used by respectable organizations, not just amateurish Cheap Software projects. This is because it is similar to older, commercial systems which aren't available on modern systems. Unfortunately, development of RCS has fallen by the wayside too, and CVS is almost guaranteed to be the only Cheap Software system available in five years.

      But, honestly, if you're have a Real Job at a Real Company, the cost of RCS is usually insigificant. And for personal projects and Cheap Software shit, CVS is more than adequate.

      If you're like most Slashdot readers -- i.e. living in their parents basements and "hacking" Perl while living on food stamps -- and thus forced to use CVS, I recommend Fogel's book. It's actually available online, but I recommend buying it, because it is unique in two aspects: first, it's the only Coriolis book I've seen that isn't total BULLSHIT; second, it's some of the best-written Cheap Software documentation you'll ever read. If you're poor or stupid enough to use Cheap Software RCS, this book is essential. Fogel is really too good for Coriolis... I'd like to see this book reprinted by New Riders.

      HTH, you delicious newbie fag!
      -- The_Messenger

    3. Re:Question by lightray · · Score: 1
      There's always PRCS:

      PRCS, the Project Revision Control System, is the front end to a set of tools that (like CVS) provide a way to deal with sets of files and directories as an entity, preserving coherent versions of the entire set.
    4. Re:Question by BdosError · · Score: 1

      Offtopic (-1):
      How is this question Insightful?

      --
      Complexity is Easy. Simplicity is Hard.
    5. Re:Question by Anonymous Coward · · Score: 0

      That's the lowest user number of a "newbie" that I've ever seen...

    6. Re:Question by T-Punkt · · Score: 2, Informative

      Are you a troll or just uninformed?

      CVS is built upon RCS, they use the same fileformat to store revisions. Actually you can see CVS as "RCS + network support". Using RCS instead of CVS doesn't buy you anything. Since you mentioned the GNU RCS homepage, this is from the GNU CVS homepage:

      "While CVS stores individual file history in the same format as RCS, it offers the following significant advantages over RCS:
      [...]"
      (Read the rest on http://www.gnu.org/software/cvs/ )

      So saying RCS is for "Real Jobs" at "Real Companies" and CVS is just for "amateurisch Cheap Software projects" just makes you look pretty dumb IMHO.

    7. Re:Question by r00tarded · · Score: 0

      hey are we co-workers?

  9. Yeah, fuck authority! by SumDeusExMachina · · Score: 0, Flamebait
    That's the way to stick to the man, Bruce! We don't need some "project manager" telling us what's good for us! Let's just commit anything and everything that we can, because we are always right, right?

    Coherent code is for morons. Especially if it works without crashing and corrupting all your data.

    --

    Is your company running tools written by ma
  10. Subversion by bfree · · Score: 2

    Call me a dummy but I assumed he meant the possibility of corrupting a distributed global namespace. I presume this features some form of strong authentication system (couldn't reach the site) but it could be pretty hairy if you were doing a make world out of this using any "unofficial" patch sources, but we all audit all the code we run don't we!

    --

    Never underestimate the dark side of the Source

    1. Re:Subversion by smcv · · Score: 1

      The global namespace thing is just that each package's full name includes an identifier for the server it's on.

      Here's an analogy:

      http://slashdot.org/comments.pl?sid=27540&cid=29 58 559
      There's a uniquely identified item in a global namespace. I might use a mirror (web proxy) or an untrustworthy source (r00ted web proxy) to access it; that's my problem.

      /comments.pl?sid=27540&cid=2958559
      There's an item in a local namespace. Exactly the same as the one above, but
      you need to know the context (i.e. that we're on Slashdot) before you can actually retrieve it.

      If you decide to download, for example, a snapshot of gcc@gnu.org--gcc--3.0 (as far as I can see, that's roughly what gcc 3's unique ID might look like if the authors used arch) from l33t.h4x0r.net instead of ftp.gnu.org, that's your security problem, not the identifier's. If you don't think the site you're connecting to is the canonical source, don't use it - just like you'd download gcc-3.0.tar.gz (or whatever the distribution filename is) from a reputable mirror rather than l33t.h4x0r.net at the moment.

  11. Re:fp by SumDeusExMachina · · Score: 1

    If your post is 1 character long, then yes.

    --

    Is your company running tools written by ma
  12. ClearCASE by Anonymous Coward · · Score: 1, Interesting

    ClearCASE has been doing this for many years now.

    Nothing new. not revolutionary...

    i know. I'm just an AC, but i am right.

    1. Re:ClearCASE by LarryRiedel · · Score: 1

      I think the revolutionary part is doing it with a small, clean and implementationally transparent solution. Cost aside, I think ClearCASE is far too complex to deserve the widespread adoption of CVS.

      I think any solution which supplants CVS should be one where the persistent data model which represents the state of the system is simple and elegant enough that any competent programmer can pretty easily write a completely independent set of software which works seamlessly and correctly with the "official" software to manipulate the data.

      The architecture of "arch" seems like it may provide the important advanced features without the inordinate complexity.

    2. Re:ClearCASE by hondo77 · · Score: 1

      ClearCASE has been doing this for many years now.

      Nothing new. not revolutionary...

      The revolution is that arch and Subversion are free. ClearCase is nice and all but it's not cheap (in the extreme).

      --
      I live ze unknown. I love ze unknown. I am ze unknown.
    3. Re:ClearCASE by Anonymous Coward · · Score: 0

      ClearCase is slow
      ClearCase is closed source.
      ClearCase does not scale well.
      ClearCase requires an administrator dedicated just to ClearCase.

    4. Re:ClearCASE by steve_l · · Score: 1

      Also ccase integrates clearquest, whose webinterface sucks worse than bugzilla. Ever had a session time out while entering a long bugrep? with cquest you will.

  13. 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.
    1. Re:From his faq by BdosError · · Score: 1

      Actually, StarTeam from Starbase uses a DBMS as a backend, and it's configurable. I worked at a place that used it with an Access backend <shudder>, but upgraded to a full Oracle DB when we (quickly) outgrew it.

      --
      Complexity is Easy. Simplicity is Hard.
    2. Re:From his faq by The+Man · · Score: 2, Informative
      Anyone know a good system of incoroprating source control with a databases? Oracle and Postgres would do.

      Well, it's certainly not a GOOD source control system, but I know for a fact that starteam uses a database backend. I'm pretty sure Rational ClearCase does also, and I'm told it sucks a good deal less. Anyway, there are a lot of problems with starteam; one of them being its strong preference for running on microshaft platforms, another its lack of database support (access, sql server, and oracle only - gimme a break!) and its outrageous cost (10s of $k for a small team plus massive server hardware). So, yeah, it's been done, but I'd much rather use even CVS than starteam. ClearCase, well, I'd love the chance to see it, but I never will at this cheapass company.

    3. Re:From his faq by vitesse · · Score: 1

      Well, CMVC (IBM) sits on top of DB2, and I'm pretty sure Continuus uses an RDBMS at the back end.

    4. Re:From his faq by roryh · · Score: 1

      CCC/Harvest from CA uses Oracle at the backend, but I think that's only for version diff info. It's pretty cool for tracking specific revisions throughout different levels of release of code, but it's a pig to use if you're a coder.

    5. Re:From his faq by Anonymous Coward · · Score: 0

      I remember ACID from my DB class, but no idea why Consistancy is part of the acronmym. I guess it's just to let it be remembered more easily (see Ullman's DB book for what I mean -- best one ;))

    6. Re:From his faq by Dave+Goldblatt · · Score: 1
      Continuus (now owned by Telelogic) uses Informix as its back end.

      Runs on Windows, Solaris, Linux, etc. etc. etc.

    7. Re:From his faq by Anonymous Coward · · Score: 0

      Merant PVCS dimensions does this with oracle.

    8. Re:From his faq by belg4mit · · Score: 1

      Clearcase essentially forces you into
      Sybase on Windows. I do not know what
      the UN*X setup uses.

      I didn't find ClearCase to be all that
      great. But then again I was using a
      windows server for UN*X source. At the
      time (presently?) yo must have seperate
      databases and servers for UN*X and Windows clients.

      --
      Were that I say, pancakes?
    9. Re:From his faq by briansmith · · Score: 1

      Oracle has its own SCM system where all the information is stored in an Oracle Database. It is 6,000+the cost of the database, if I remember right (approximately $46,000 total for a dual-CPU Windows system the last time I checked).

    10. Re:From his faq by Malcontent · · Score: 2


      FreeVCS

      Free as in beer, source available but I am not sure if the license is compatible with OSS, works with interbase, windows only, integrates with VC++, Delphi etc.

      --

      War is necrophilia.

    11. Re:From his faq by Graspee_Leemoor · · Score: 3, Informative

      You'd think that using an rdbms would give you lots of control over your source tree, but think again. Any decent rcs works incrementally- i.e. you are storing deltas, not always whole lines of code.

      The indices (stuff this "indexes" crap) would be really bad and slow on all your tables.

      Also RDBMSs suck at representing hierachies, which source trees naturally are. In fact, I dare say the only reason that RDBMSs are so widespread and accepted today is that originally it was much faster to do this rather than use an OO, hierachical way of doing things.

      The way you store things has to be written specifically so that it fits in with the way projects work and evolve.

      Forgive the lameness. Haven't had my 2nd coffee of the day yet...

      graspee

    12. Re:From his faq by hondo77 · · Score: 1

      Anyone know a good system of incoroprating source control with a databases?

      Subversion uses BerkeleyDB.

      --
      I live ze unknown. I love ze unknown. I am ze unknown.
    13. Re:From his faq by schatt · · Score: 1

      We use clearcase here at my current company, and we have the same boxes serving clearcase to both pcs and unix machines. The secret to doing this (fully supported by Rational, no less)? Samba.
      Works like a charm, most of the time, but that's not due to problems on Samba, but more likely our network connection screwing up our remote synchs.

    14. Re:From his faq by owenomalley · · Score: 2, Informative

      Actually, I'm team lead on a CM system where all of the metadata is in Sybase. We use Sybase replication to keep multiple servers at different sites in sync with each other. (Sybase has a nice replication model that will store changes in a stable queue until the remote server is available again.) Anyways, using a real database means that our tool scales to insane levels (we see peaks on one project of 20,000file versions/day). We also get the ability to do live backups, etc. It is also very nice being able to write adhoc queries against the database in sql. (ie. in the last month, show me how many file versions were generated at each site on each day.)

      While we keep all of the metadata in Sybase, we store the actual bits in the filesystem.

    15. Re:From his faq by GooberToo · · Score: 1

      MS VSS also uses a database (Jet based) and I can tell you, this can also lead to serious troubles. I can't even begin to tell you the number of files that it lost. Since the data is stored in a database, manual recovery is impossible unless you send the database to the vender, which we did on a regular basis. The worse thing was, often even they were unable to recover specific revisions of files and in many cases, whole files were completely lots.

      What does this message mean? Well, VSS should never be used for serious, large scale development. VSS should never be used for remote/distributed development. Using a database for CM sounds wonderful, however, you need to be very picky about the backend that is being used. If the product is question is tied to a vendor's in house database format, find out what business they are in. If they truely did develop it in house, are they in the database business or the RC business? If they are in the later and did develope it in house, you should look elsewhere. I can't stress this enough. If you are using a backend database, ask you self, would you run your accounting/payroll on that database? If the answer is no, don't use that product for anything significant. In fact, don't use it all.

      Just random ramblings follows here.

      PVCS - Okay tool. Command line tools stink. VERY slow system, especially if you are in a distributed or heterogeneous environment. Reporting is neat and powerful but the slow and ackward GUI/command line tools just make it too painful for every day use.

      StarTeam - Neat tool. Never used it for long term development. Speed was okay. Was weary of it somewhat because, IIRC, it used it's own database format. Overall, seemed like a good robust Microsoft only tool but take that with a grain of salt.

      MSVSS- Horrible tool. Slow. Buggy. Destroys data. Unrealiable. Unusable in a distributed environment. I curse the day I'm forced to use those worthless product again.

      ClearCase - Powerful tool. Found it to be somewhat odd but very flexable. Limited experience with it. Take this with a grain of salt.

      MKS Souce Integrity - Evaluated this a long time but it seemed likea pretty good tool at the time. I seem to remember there were some caveots, however, I don't remember what they were. Again, take this with a grain of salt. Worth a look if you in the market and have time to evaluate.

      While I've used many other tools, in addition to the ones above, I find that I keep coming back to CVS. Why? It's simple. Highly available. Crossplatform. Manual recovery with a high probability of sucess is possible. Supports distributed development well (better than most). While there certainly are some things that I would like to see improved in CVS (it's certainly not an end-all, do-all tool) I find that for the vast majority of projects, it fits good enough and is free. For those that are less command line inclined, GUIs for most every platform are readily available. Simply put, it works.

    16. Re:From his faq by gorilla · · Score: 2

      PVCS Dimensions does too.

    17. Re:From his faq by Anonymous Coward · · Score: 0

      CMVC uses Sybase, Oracle, or DB2. It actually stores files in SCCS and subdirectories. The database is used for defect tracking and recordkeeping. I loved it. IBM replaced it then retired it. They now push ClearCase.

    18. Re:From his faq by Anonymous Coward · · Score: 0

      Very nice. Oracle has a versioned network file system (IFS or something?) which is stored as BLOBs in the database. It looks like a good foundation to build a source control system or content management system. This kinda gives you what ClearCase has with its munged up NFS and a RDBMS storage system that can scale like crazy.

    19. Re:From his faq by tom's+a-cold · · Score: 1

      It was tricky getting Clearcase to work with Samba three years ago. Let's hope it has improved since then. Rational tech support did little then besides giving dire warnings that it was unsupported behavior, do not remove tag under penalty of law, contains no user-serviceable parts, etc.

      Once we got it working, it was really sweet, though.

      --
      Get your teeth into a small slice: the cake of liberty
    20. Re:From his faq by tom's+a-cold · · Score: 1

      ClearCase doesn't use an RDBMS (instead, it uses a versioned object base, which is a DBMS disguising itself as a file system), though you can configure it to export the metadata to an RDBMS such as Sybase.

      Unless things have changed radically for the worse in the past couple of years, you do not have to have separate databases and servers for Windows and Unix clients. I set up a and ran a ClearCase facility about three years ago, and we did all our development into a single VOB on a single box. We hosted on Solaris rather than Windows, maybe that's why it went easier for us. On Solaris, it was rock-solid. Windows access to the VOB was via Samba. After initial teething trouble, that worked well too.

      --
      Get your teeth into a small slice: the cake of liberty
    21. Re:From his faq by jo42 · · Score: 1

      What are you babbling about? VSS creates 26 directories from "a" to "z" and then creates hundreds and thousands of files in them. Yeah, totally brain-dead implementation IMO.

    22. Re:From his faq by GooberToo · · Score: 2

      What are you babbling about? VSS creates 26 directories from "a" to "z" and then creates hundreds and thousands of files in them. Yeah, totally brain-dead implementation IMO.

      Hmmm. That's interesting. I last used MSVSS years ago and it was certainly not like this. Sounds like significant changes have been put in place. While I no longer clearly remember what files were being sent I do distintly remember having conversations about using a Jet database with the support personal and that corruption was common place.

      Well, hopefully I won't have to every worry about learning the current state of the technology... :)

  14. Visual Sourcesafe by HalfFlat · · Score: 2

    We tried - briefly - VSS in a project involving approximately 15 developers in the same building. It was slow and awful.

    CVS may not integrate so prettily into VC++, but it does work! We found switching over to CVS to be relatively painless: the only problem was that sometimes a file would be edited using Notepad or something, that shouldn't have been, which introduced ^M characters that confused CVS.

    Extrapolating from our experiences, the reason why VSS worked so poorly for your company might be more due to the quality of VSS rather than the degree of distribution of your developers.

    1. Re:Visual Sourcesafe by SerpentMage · · Score: 2

      CVS DOES integrate into Visual Studio. Look for the IGLOO plugin. Works like a charm.

      I also agree VSS sucks and CVS works better.

      What annoys me about all the new Version Control systems like the one being proposed is that they are ignorant of NON POSIX / UNIX systems. I have to work on both LINUX and Windows. And as such need version control on both.

      --

      "You can't make a race horse of a pig"
      "No," said Samuel, "but you can make very fast pig"
    2. Re:Visual Sourcesafe by 21mhz · · Score: 1

      We overcome sluggish performance of VSS over VPN/CIFS with SourceOffSite, a third-party client-server pair where a remote client sends requests via TCP/IP to the server that in turn comes as a client to the on-site VSS server. Unbelievably, it works orders of magnitude faster.

      The CVS/Un*x analogy to this would be the difference between accessing to the repository on an NFS volume over S/WAN and the CVS client-server interaction. Makes me wonder over the comparison of CIFS/ActiveDirectory vs NFS on remote Internet connections.

      --
      My exception safety is -fno-exceptions.
  15. This is pretty nifty by be-fan · · Score: 2

    This looks really cool, if only for the fact that it finally has a sane way to rename files. It's annoying renaming, deleting, removing, and adding with CVS.

    --
    A deep unwavering belief is a sure sign you're missing something...
    1. Re:This is pretty nifty by Anonymous Coward · · Score: 0

      What's with the .sig?

  16. THIS is why I read slashdot. by Matt2000 · · Score: 2


    I've been struggling with CVS for a while now, and while it does the job I've always been thinking "There's got to be something out there with recursive add built in."

    Now here comes slashdot with an actual useful story about source control and some of the options and development outside of CVS.

    The only thing to find out now is if the discussion will be of any use, obviously I'm not helping...

    --

    1. Re:THIS is why I read slashdot. by Cuthalion · · Score: 1

      There are clients for CVS with recursive add built in. At least for windows, TortoiseCVS supports this, and is consistently delightful to use, IMO.

      --
      Trees can't go dancing
      So do them a big favor
      Pretend dancing stinks!
    2. Re:THIS is why I read slashdot. by jfx32 · · Score: 1

      WinCvs also has a recursive add built in.

    3. Re:THIS is why I read slashdot. by Anonymous Coward · · Score: 0

      I have to agree. Occasionally Slashdot has a real diamond of an article - this is such a case. Ironically, the more I read about Arch - the move I prefer Subversion (another SCM I learned about through Slashdot). Subversion is superior to Arch in almost every way - uses WebDAV, Apache, SSL, Berkley DB. Arch does not even have a Windows solution - even for Cygwin - so it loses its appeal in hetrogeneous work environments.

    4. Re:THIS is why I read slashdot. by tricorn · · Score: 1

      I've been struggling with CVS for a while now, and while it does the job I've always been thinking "There's got to be something out there with recursive add built in."

      That's got to be the lamest thing to complain about in CVS, and also one of the easiest things to fix yourself. If you don't have a client program that will do it for you already, you can always write a simple shell script to do it. There are good arguments for NOT doing a recursive add, and the fact that the command-line client distributed with the package chooses not to support it is almost totally irrelevant. Just how many times do you add a directory hierarchy that is deep and wide enough that you need this, anyway? I mean, oh dear, 5 subdirectories, it's just too much work! Or, you could do:

      cvs -d /cvs co -l .
      find project | xargs cvs add
      cvs commit

      Or, as someone else pointed out, you can just use cvs import.

  17. Seems like a big step backwards... by mikemulvaney · · Score: 5, Insightful

    It sounds like it has a lot of nice features, but then you realize the whole thing is written in sh? One of the nice things about CVS is that the client-server nature allows someone to use pretty much any operating system as a client. Subversion takes this to the next step, by making all connections use the client-server model.

    Forcing everyone to use sh is a major hassle. I know that it would work with any "reasonably POSIX" OS, but then developers can't get arch accessibility built into their favorite tools, like NetBeans or whatever.

    Creating local branches is pretty cool, though.

    Mike

    1. Re:Seems like a big step backwards... by LarryRiedel · · Score: 3, Insightful

      I think a major test of this or any other successor to CVS should be how amenable is the design to alternative implementations which integrate seamlessly with the reference implementation.

      I think the fact that the "arch" solution is designed to be so simple and clean that it can be implemented with a few shell scripts bodes well for it.

      I would expect it to be pretty easy to integrate the "arch" solution into lots of other tools by writing a little code which manipulates the files the same way the "arch" shell scripts do.

    2. Re:Seems like a big step backwards... by TheAwfulTruth · · Score: 2

      SO every os there is is some flavor of unix?

      --
      Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!
    3. Re:Seems like a big step backwards... by jonabbey · · Score: 2

      Well, at the least it seems less space efficient than CVS. The arch repositories seem rather frighteningly brittle as well, given that anyone could use file access tools to subtly corrupt the repositories.

      Will be interesting to see what sort of response all this sudden hype for Arch provokes from Larry McVoy and his Bitkeeper project. arch seems unique enough to be worthy of comment from the revision control big boys. ;-)

    4. Re:Seems like a big step backwards... by mikemulvaney · · Score: 2
      Well, at the least it seems less space efficient than CVS.

      Well yeah, but with the cost of disks these days, I don't think this is a very big problem. I had a hard drive crash on my server last night (this is at home, so its not professionally backed up or anything), and I was glad to have a real copy of all my source checked out on two different PC's at the time.

      This is an interesting subject, though. At work, we are in the middle of an agonizingly slow migration from BCS/RCS (I'd love to give a link to BCS, if there was one :) to CVS. BCS uses an intricate system of softlinks to provide a CVS-like working area, so switching to CVS is likely to chew up a lot more disk. But really, who cares? For a couple hundred bucks you could set up a RAID array that would hold every line of source that you ever wrote in your life, 1000 times over. Plus, you really only have to check out the stuff you are working on, and if you are currently working on gigabytes worth of source code, then whoa. I know you're talented Jon, but jeez...

      The arch repositories seem rather frighteningly brittle as well, given that anyone could use file access tools to subtly corrupt the repositories.

      Yes, this worries me too. For the projects I work on, I *want* to limit access to the repository to the tool itself, for data integrity and logging purposes, if nothing else. That's one of the problems with CVS: you can still go into those ,v files and wreck havok manually. (And the bigger problem is that CVS forces you to do so on occasion, like when moving a file to a new directory).

      I think its just different tools for different purposes, though: if you really want that bazaar style, this could be useful. But for most projects, you want tighter control, so CVS or subversion or any client-server based system would be better.

      -Mike

    5. Re:Seems like a big step backwards... by jonabbey · · Score: 2

      But really, who cares? For a couple hundred bucks you could set up a RAID array that would hold every line of source that you ever wrote in your life, 1000 times over. Plus, you really only have to check out the stuff you are working on, and if you are currently working on gigabytes worth of source code, then whoa. I know you're talented Jon, but jeez...

      Heh, not even close. The last 6 years of work by everyone who has done anything for Ganymede amounts to 19 megs in cvsroot plus change.

      However, source code isn't the only thing you'd like to be able to manage with a CVS-like system. We've spent the last few months building a web management/authorization tool that is based on mod_python, CVS, and MySQL. People put their content on our staging server, then use our web tool to browse the staging server and sign files to approve the exporting of those files to our new external web server. When the periodic sync happens, a daemon does a CVS export to a working directory, tars it up, and ssh's it out to the heavily secured external web server.

      Works great, except we have a person who has loaded 500 megabytes of data onto the staging server for a project of his. I don't imagine the content will be changing very rapidly, but I'd hate to have several 500 megabyte copies of his content hanging around in our staging server's CVS repository, cheap disks or no cheap disks.

      Really, revision control management systems are getting specialized enough that one size tool simply won't fit all. Bitkeeper, arch, and the other 'new wave' of SCM systems are explicitly designed to manage distributed source code development, which is not really what we are using our signing/authorizing tool for.

    6. Re:Seems like a big step backwards... by Fweeky · · Score: 3, Informative

      Well, it's not *entirely* in sh:

      Totals grouped by language (dominant language first):
      ansic: 61064 (66.48%)
      sh: 27853 (30.32%)
      lisp: 1868 (2.03%)
      awk: 1044 (1.14%)
      sed: 24 (0.03%)

      (If you want more detail, run sloccount over it yourself)

      Anyay, it could be worse; it could be written in Perl ;)

    7. Re:Seems like a big step backwards... by mikemulvaney · · Score: 2
      We've spent the last few months building a web management/authorization tool that is based on mod_python, CVS, and MySQL. People put their content on our staging server, then use our web tool to browse the staging server and sign files to approve the exporting of those files to our new external web server. When the periodic sync happens, a daemon does a CVS export to a working directory, tars it up, and ssh's it out to the heavily secured external web server.

      Wow, that sounds really cool. Are you going to GPL this stuff too? I would love to get a hold of it.

      -Mike

    8. Re:Seems like a big step backwards... by gstein · · Score: 2, Informative

      It may be interesting to note that you can do an "svn commit" to check in a change to a .html file and have it immediately appear on your web site. In fact, SVN uses a URL to specify the repository to check out. That URL can be your website. For example:

      $ svn checkout http://mysite.example.com/ -d site
      $ jed site/index.html
      $ svn commit -m "more tweaks" site

      Your tweaks are immediately published.

      (of course, it sounds like you want a staging server in there, and some kind of workflow, but that can be done and is an exercise for the reader... :-)

    9. Re:Seems like a big step backwards... by nickm · · Score: 2

      A RAID array, eh? Let's see, that would be a Redundant Array of Independent Disks array. Wow! You have a Redundant Matrix of Independent Disks!

      How does that RMID work for you?

      --

      --
      I noticed

      It's getting about time to leave everywhere

    10. Re:Seems like a big step backwards... by jonabbey · · Score: 2

      Wow, that sounds really cool. Are you going to GPL this stuff too? I would love to get a hold of it.

      Yup, that's the intent, once things settle down a bit more. The thing started out using PHP, Python, and MySQL, then we added in a CVS layer and the ability to view a copy of our external web server's configuration at any given time. Then the PHP layer got ripped out in favor of mod_python, and now we're looking at adding in a WebWare layer to handle session management, caching, etc., rather than simple http basic authentication.

      Give us another month or two to get some user testing and documentation done and we should be making an announcement and putting it out under the GPL.

    11. Re:Seems like a big step backwards... by jonabbey · · Score: 2

      What's SVN? Does that have to do with Subversion, or is it a WebDAV thing?

      Our tool is designed to allow arbitrary people with UNIX file access privileges (or Samba, or FTP) to manage the content on the internal staging server, then have a defined set of users with review and approval authority who can sign files through the GUI, which tracks md5 signatures for the files to be able to determine whether a given file has changed since it was last signed or not. If a file has changed, the GUI can present a nice graphical context diff between the last signed version and the version on the staging server. If an approved user signs the file, that file gets checked into CVS, and so will be part of the next web server synchronization.

      So yes, workflow, auditing, and a staging server separated from the (very locked down, firewalled) external server.

    12. Re:Seems like a big step backwards... by gstein · · Score: 1

      Sorry... SVN is short for Subversion. :-)

      (the command line client is "svn" and we use "svn" in conversation)

    13. Re:Seems like a big step backwards... by Ed+Avis · · Score: 2
      The arch repositories seem rather frighteningly brittle as well, given that anyone could use file access tools to subtly corrupt the repositories.

      Huh? The same applies to CVS - any monkey with a text editor could go in and edit the ,v files in the repository. Or you could just remove the repository entirely, or rot13 encode half of the files, or whatever. If a version control system uses a Berkeley DB database, anyone could use rm(1) to 'silently corrupt' that. This is a property of any program which stores data on disk. So what?

      You could argue that the problem is too much privelege - one shouldn't need direct write access to the repository in order to check in code. However I don't think this is a big deal in practice, if you trust someone to make direct commits to your tree you probably trust them not to do idiotic things generally.

      --
      -- Ed Avis ed@membled.com
    14. Re:Seems like a big step backwards... by renoX · · Score: 2

      Hmm quite of lot of different languages..

      OK, I'm curious why lisp??

      Mmm, you have to be very careful when you code in shell otherwise you have a portability mess, and I don't find shell scripts very readable when they become large..

    15. Re:Seems like a big step backwards... by Brian+Feldman · · Score: 1

      > Mmm, you have to be very careful when you code in [insert language here] otherwise you have a portability mess, and I don't find [insert reference to language's source code files here] very readable when they become large..

      Just pointing out the obvious ;)

      --
      Brian Fundakowski Feldman
    16. Re:Seems like a big step backwards... by Pilchie · · Score: 2

      svn is the name of the command line client for Subversion. Since Subversion uses WebDAV for its network protocol, all of your head is browseble directly over the web. Try going to http://svn.collab.net/repos/svn/trunk/ to see an example of this up close.

      --
      >~~~~~~~~~~~~~~~~
      Pilchie
    17. Re:Seems like a big step backwards... by Anonymous Coward · · Score: 0

      A RAID array, eh? Let's see, that would be a Redundant Array of Independent Disks array.

      Actually, that's a Redundant Array of INEXPENSIVE Disks.

    18. Re:Seems like a big step backwards... by tricorn · · Score: 1

      CVS started out as a collection of shell scripts in 1986.

  18. I can suggest a name by Angst+Badger · · Score: 2
    He'll have to change its name, but Tom Lord's arch revision control system is revolutionary.

    How about polyfork? Sounds like a great way to give equal weighting to every trivial disagreement over design.

    --
    Proud member of the Weirdo-American community.
    1. Re:I can suggest a name by Anonymous Coward · · Score: 0

      How about polyfork? Sounds like a great way to give equal weighting to every trivial disagreement over design.
      It's redundant. A fork is already poly (by definition, otherwise it'd be a spoon). Either go with "poly" alone, and save 4 bytes (w00t!) or go with "polyspoon", which is just a circumlocution for "fork", which, of course, is already taken.
      ClearFork might work too, since the forking is "transparent".
      Paul.

    2. Re:I can suggest a name by Anonymous Coward · · Score: 0

      Tracy Lord!

    3. Re:I can suggest a name by Anonymous Coward · · Score: 0

      Or, diversion, perhaps.

  19. I smell trouble by heretic108 · · Score: 4, Insightful

    From the article, it looks good.
    But let me say that I've sometimes been in the position of having to merge branches. In my first hacking job, I had to take code that had been written by 2 crazy Polish programmers, and merge 37 non-working branches into one branch that worked. It was *not* fun, and I enjoyed a well-deserved beer when it was done.
    IMO, a distributed system of archive management that doesn't make ongoing reference to a central tree is a sure recipe for chaos, and poses the risk of making software harder to install/use for the non-skilled, and creating a lot of work in merging disparate branches for the skilled.

    You want package xxyzz? OK - go to Jim's store in San Diego. It's easy to set up. Oh, I forgot to tell you, you've gotta get some bits from Lucy's store in Manchester, and Frieda's fixed a few bugs too - get her fixes from Bonn. And don't forget Peter's enhancements - his store is at the Adelaide University site. What? it doesn't compile? What kind of idiot are you? Just hack it till it does compile, then put it together in your own tree!

    --
    -- In the beginning was the WORD, and the WORD was UNSIGNED, and the main(){} was without form and void...
    1. Re:I smell trouble by Anonymous Coward · · Score: 0
      You want package xxyzz? OK - go to Jim's store in San Diego. It's easy to set up. Oh, I forgot to tell you, you've gotta get some bits from Lucy's store in Manchester, and Frieda's fixed a few bugs too - get her fixes from Bonn. And don't forget Peter's enhancements - his store is at the Adelaide University site. What? it doesn't compile? What kind of idiot are you? Just hack it till it does compile, then put it together in your own tree!

      Sounds like shared libraries in Linux...
      e.g. Try compiling something like GNOME from scratch... if after an hour or two you conclude "it doesn't exist!", you have my sympathy.

    2. Re:I smell trouble by Anonymous Coward · · Score: 0

      If I understood the article correctly, changes originating upstream would be applied automatically to downstream trees, but changes originating downstream would be applied to upstream trees only after review by the tree maintainer. If that's not what he meant...well, let's just say sanity took a holiday.

    3. Re:I smell trouble by PhotoGuy · · Score: 1, Troll

      Please, mod this response up! Without centralized control, distributed source control is worthless!

      -me

      --
      Love many, trust a few, do harm to none.
  20. is arch CVS compatible (like subversion)? by e40 · · Score: 5, Insightful

    It is an important feature of subversion that it will be CVS compatible. I manage a 10+ year old/1+GB CVS repository. CVS has a lot of faults, but I can't throw that version history away. It's too valuable. subversion gives me hope that I'll get something more usable than CVS (we'll see, won't we!) without much pain.

    I'm really hoping the subversion developers succeed.

    Having said that, I'm all for arch succeeding too. Perhaps it will be better for new projects. Who knows.

    1. Re:is arch CVS compatible (like subversion)? by e40 · · Score: 2, Informative

      According to this, there is a plan for CVS repository conversion.

      Cool.

    2. Re:is arch CVS compatible (like subversion)? by sudog · · Score: 1

      CVS's format is nice and open, and based on RCS. It's extremely simple to convert from CVS into most other formats--for example, Perforce supplies CVS conversion utilities in Perl on their homepage. Piece of cake my friend!

      Switching back is another matter, but still well within the realm of possibility for all but the laziest.

    3. Re:is arch CVS compatible (like subversion)? by e40 · · Score: 1
      CVS's format is nice and open, and based on RCS. It's extremely simple to convert from CVS into most other formats--for example, Perforce supplies CVS conversion utilities in Perl on their homepage. Piece of cake my friend!

      Not in my experience. I tried the Perforce conversion tools (2 of them) and they barfed on my repository. The errors were unclear, and a couple of hours of debugging led nowhere. At the time the Perforce support folks were not that helpful, but said if I became a customer they would solve the problem. For my staff, I calculated it would cost about $6000/yr to purchase and maintain p4, but ultimately I was too busy mentally to tackle the daunting (in my mind) task of converting my repository.

      The problems might have been due to the fact that my repository is very old, as I said. The ,v files were imported from the days when we used just RCS. The first version of CVS we used was 1.2. Perhaps the format of the RCS files got subtly corrupted from the Perforce conversion tools point of view, but not from CVS' point of view.

    4. Re:is arch CVS compatible (like subversion)? by Pilchie · · Score: 2

      The subversion developers are coming close. The current version supports almost everything CVS does, plus more. See the homepage, for more details. Also, something not noted on the webpage is that someone has actually got a cvs2svn repository converter which can convert repositories. Note that it doesn't follow branches or tags yet, but is able to convert the entire mainline gcc development tree to an svn repository.

      --
      >~~~~~~~~~~~~~~~~
      Pilchie
  21. Bye Bye Collab.net by Anonymous Coward · · Score: 0

    first Sourceforge kills Sourcecast(sourcexchange)... Now subversion gets beat the the punch.

    Bet Karl Fogel's peeing his pants right now.

    Poor execution Behlendorf... sell the company... get back to what you do best -> apache.

  22. Will RIAA attack me if I put mp3 files in the tree by Grax · · Score: 1

    Will RIAA attack me if I put mp3 files in the source tree?

    (with the permission of the author, performer, their music studio, and Aunt Tillie of course)

  23. gasp--a mess of shell scripts by markj02 · · Score: 4, Insightful
    The feature list sounds nice, and using the file system in the way it does is also pretty nice. But I just can't deal with 40kloc of shell script for a version control system. How am I supposed to run that sort of system on a non-UNIX system? What kinds of oddball dependencies is it going to have on the shell, path, and environment?

    This seems like it's worse than CVS. Functionally, I'm quite happy with CVS. The main complaint I have about it is that it isn't self-contained but invokes rcs and other shell commands in mysterious ways. "arch" seems to make things worse, not better in that regard. What I would like to see is something mostly like CVS, but something that is implemented as a clean, self-contained library with a single command line executable (with subcommands) and a built-in HTTP-based server. Until that comes along, I think I'll just stick with CVS.

    1. Re:gasp--a mess of shell scripts by kenzoid · · Score: 1
      Check out Subversion, it's shaping up to look pretty good. This article in Feb '02 Linux Journal does a pretty good job of giving the highlights...they include "real copies and renames", use of Apache as the httpd server, filesystem properties, etc.

      Ken

    2. Re:gasp--a mess of shell scripts by William+Tanksley · · Score: 2

      arch isn't designed for someone who wants a clean CVS replacement. It's a completely different system, with all its own powers and drawbacks.

      Subversion is a CVS replacement.

      -Billy

    3. Re:gasp--a mess of shell scripts by btonkes · · Score: 2, Informative
      From the cvs info pages:
      CVS started out as a bunch of shell scripts written by Dick Grune, posted to the newsgroup `comp.sources.unix' in the volume 6 release of December, 1986. While no actual code from these shell scripts is present in the current version of CVS much of the CVS conflict resolution algorithms come from them.
      A "mess of shell scripts" can be very useful for a proof-of-concept.
    4. Re:gasp--a mess of shell scripts by Fweeky · · Score: 2

      > A "mess of shell scripts" can be very useful for a proof-of-concept.

      Indeed. The language doesn't make a whole lot of difference, and well written /bin/sh code is going to work pretty much anywhere. Hell, cvsup is written in Modula 3 and people use that :P

      Personally I wouldn't mind a Ruby version.. :)

      (having said that, C isn't all that wonderful a language - it's low level power can just as easily be used to blow your head off as make for a super-fast program).

    5. Re:gasp--a mess of shell scripts by brucet · · Score: 1

      well written /bin/sh code is going to work pretty much anywhere.

      Ugh, I've needed to write cross platform /bin/sh scripts and I'm amazed at how limited the set of common capabilities are. Or perhaps it would have helped if I had found a good reference to what will *definitely* work on which platforms. Is /bin/sh POSIX on all major platforms? Or do some have it in an alternate location like /bin/posix/sh?

      I've had much better luck going with perl which is very common, though I admitted that has required some trouble on some older installs of unixes which don't ship with perl standard. But it doesn't have nearly the version incompatibilities that sh has (even if you have to write code that works on perl4 and perl5, it's pretty easy and the differences are well documented.)

      The one area when I do still use sh instead of perl is when I want the output from sub programs to be show to the screen progressively instead of after completion. Such as:

      #!/bin/perl
      print `echo foo; sleep 5; echo bar`;

      This won't print anything until the after the entire program completes, unlike sh. Is there a way to do that in perl?

      But to do anything at all complex, sh is a pain in the ass.

      -Bruce

    6. Re:gasp--a mess of shell scripts by klui · · Score: 2, Insightful

      I guess what you're suggesting stems from a different philosophy (Windows/classic Mac OS)--monolithic--than that of UNIX--writing tools that do one thing and do it well, while leveraging other tools on the system that do what they do well.

      I really don't care if this system is written using shell scripts, Java, or plain old C. Well, I do prefer just C, but that's my personal preference. I don't want the author to implement his own version of diff, check in, check out, etc. These subsystems are already available. Why reinvent the wheel again? If there are existing source repositories, it would be a pain to convert all the trees into a new proprietary format. RCS has worked well for so long, it would be a shame to throw all the histories away and start anew.

      Written properly, the shell, path, and environment dependencies shouldn't be a big problem although I have run into annoyances with environment space limitations under different UNIX OSes. But this particular environment space difference is taken care of by xargs(1).

      My largest concern is performance, but since most of the work is done with compiled code, it shouldn't be too bad, however I haven't looked at the source.

    7. Re:gasp--a mess of shell scripts by Anonymous Coward · · Score: 0

      > #!/bin/perl
      > print `echo foo; sleep 5; echo bar`;

      > This won't print anything until the after the entire program completes,
      > unlike sh. Is there a way to do that in perl?

      Ah, that's because you're saying:
      1) Run the shell command "echo foo; sleep 5; echo bar" and stick its output in a scalar.
      2) Print the scalar.

      If you don't care about the output of the commands and you want it echoed try:
      system("echo foo; sleep 5; echo bar");

    8. Re:gasp--a mess of shell scripts by brucet · · Score: 1


      Ah ha, thanks! I didn't realize that 'system' would pass the output through.

      Good-bye /bin/sh!

      -Bruce

    9. Re:gasp--a mess of shell scripts by Fweeky · · Score: 2

      > Is /bin/sh POSIX on all major platforms? Or do
      > some have it in an alternate location like /bin/posix/sh?

      In theory, /bin/sh should be POSIX compliant, yes - there's certainly grounds for complaint if it's not. Unfortunately, on most Linux systems they seem to think the basic failsafe shell should be a (dynamically linked, duh) copy of bash, which tends to result in people writing scripts to POSIX + a couple of bash extensions.

      > print `echo foo; sleep 5; echo bar`;

      > This won't print anything until the after the
      > entire program completes, unlike sh.

      sh won't print it until it all completes either - try the equivilent:

      $ echo `echo foo; sleep 5; echo bar`

      :)

      > Is there a way to do that in perl?

      Yes, use "system 'echo foo; sleep 5; echo bar';".

      If you need to process the command output, you can use a pipe and do it progressively.

    10. Re:gasp--a mess of shell scripts by markj02 · · Score: 2
      I assume you want something like:

      #!/bin/sh
      $|=1;
      print "foo"; sleep 5; print "bar";

    11. Re:gasp--a mess of shell scripts by V.+Mole · · Score: 1

      >> Is /bin/sh POSIX on all major platforms? Or do
      >> some have it in an alternate location like
      >> /bin/posix/sh?

      > In theory, /bin/sh should be POSIX compliant, yes
      > - there's certainly grounds for complaint if it's not.

      Tell that to Sun. Please.

  24. programs or protocol? by devphil · · Score: 3, Insightful

    Well, flowerpot, now I'm wondering whether arch uses the ftp programs, or just the ftp protocol. That is, do you need an ftp client or server installed for arch to work? From what I've seen it wouldn't be too hard to do the protocol yourself.

    I still can't get to the site, so oh well.

    --
    You cannot apply a technological solution to a sociological problem. (Edwards' Law)
    1. Re:programs or protocol? by slamb · · Score: 2, Interesting
      Well, flowerpot, now I'm wondering whether arch uses the ftp programs, or just the ftp protocol. That is, do you need an ftp client or server installed for arch to work? From what I've seen it wouldn't be too hard to do the protocol yourself.

      Whether or not you use a standard client or server, the protocol itself is flawed. It sends passwords in plaintext.

      True, implementing an extremely simple FTP server might avoid the buffer overflows in standard stuff, but it couldn't solve that problem.

    2. Re:programs or protocol? by grammar+fascist · · Score: 2

      I've written an FTP server, and it actually wasn't that hard. Granted, it was for a specific purpose so I left some of it out...

      My two main objections with FTP itself: 1) plaintext passwords; and 2) a separate data connection, whether it's passive or active.

      Passive data transfers work well if the client is behind a firewall. If the server is behind one (like in the DMZ, DNAT'ed or otherwise), active is better. Passive transfers will just hang unless the firewall is smart enough to snoop the control connection.

      I'd go for either rsync over ssh (as has been suggested) or even HTTP before FTP.

      --
      I got my Linux laptop at System76.
    3. Re:programs or protocol? by julesh · · Score: 1

      The comparison with subversion states that an FTP server is the only dependency that the system has, so I would guess it doesn't include server software but does include its own client.

    4. Re:programs or protocol? by tricorn · · Score: 1

      My two main objections with FTP itself: 1) plaintext passwords

      There's a version of FTP which does SRP authentication distributed with the SRP package (and a telnet client and server which do the same).

      2) a separate data connection, whether it's passive or active.

      Using the same connection for control and data requires either: having some EOF indication (and an escape mechanism for the data); sending data in chunks with the length specified; or closing the control connection after each transfer. Using the semantics of "end of file" is "socket closed" works very well. HTTP, SOCKS, and many other protocols do essentially the same thing. Those that have both a stateful connection and transfer data (such as SMTP) have some constraints (such as SMTP doing dot stuffing). Using the same connection also makes it difficult to do things like abort a transfer cleanly, get a status update on the transfer, etc. It also allows doing a 3-way transfer (client specifying that server 1 transfer a file to server 2).

      Passive data transfers work well if the client is behind a firewall.

      Unless the firewall blocks most outgoing connections as well. Then passive doesn't work unless the firewall snoops and understands PASV and the response (and even then, most will only allow a passive connection to the host that the control connection is with, not allowing a passive redirect; otherwise, you could use that feature to open up an outgoing hole in the firewall to anything you wanted). I know, I know, blocking outgoing connections based on the port number is a useless exercise in futility - it might stop a dumb trojan from connecting back home, and it can prevent some worms from easily spreading using your machine (as long as the vector doesn't use those ports you allow), but try explaining that to a clueless network administrator.

  25. Subversion or Arch or both? by kfogel · · Score: 5, Informative
    I hope both systems (Arch and Subversion) get some widespread use. Like a lot of Subversion developers, I'm genuinely curious to see a) how well the Arch model works in practice, and b) how well Arch's implementation of that model works out. If it turns out to be winning, then that'll be a big step forward for collaborative projects & free software. Arch sounds a lot like Bitkeeper only without the license problems, and I've talked to some happy Bitkeeper users before (a small sample, so it's hard to know whether we're dealing with a Shift To Better Paradigm or just good software).

    Subversion was deliberately designed to address CVS's shortcomings, not to break new ground. Our philosophy was essentially conservative: CVS basically works, but has some bugs and maintainability problems. Let's keep the model and fix the problems. Result: Subversion.

    The ideal situation is a world where both models have good, free implementations. Then we'll all very quickly find out which model works better. :-)

    -Karl

    --
    http://www.red-bean.com/kfogel
    1. Re:Subversion or Arch or both? by qbalus · · Score: 3, Informative

      I've been keeping an eye on subversion, as the goals are noteworthy. Fundamentally Bitkeeper and now 'arch' model is very powerful. I used Sun's Teamware (Bitkeeper is an enhance Teamware) in organizations with over 100 developers, and remote development and it required almost zero administrative overhead. The core of Sun's Teamware, Bitkeeper, HP's old KCS, Sun's Smerge/Smoosh, and 'arch' is simply the branch/merge capabilities. Once this problem is solved, then the rest of the services can be built around it. This is where most SCM systems fall flat on their face... They lock you into a centralized server model, user interface that is clumsy, terminology that is cumbersome, policies that don't meet the consumers needs, etc...

      I view 'arch' as having a great model with a very simple implementation. Because of the simplicty, 'arch' developers will be able to respond very quickly with bug fixes and new functionality, and others can build around 'arch' to support their own policies, and process flows

      Regards,
      Kramer

    2. Re:Subversion or Arch or both? by Anonymous Coward · · Score: 0

      Can CVS clients (without knowledge of Subversion) use Subversion as their server?

    3. Re:Subversion or Arch or both? by gstein · · Score: 1

      Nope. The network protocol is entirely different.

      That said, we've had a couple people interested in writing a "proxy" to handle CVS requests and map those to the Subversion repository (or to the protocol and a remote repository). I can't see that it could allow full interop, but it should be able to support checkouts and updates (and other readonly operations).

  26. Check out Meta-CVS. by Kaz+Kylheku · · Score: 4, Informative

    Adds renaming over top of CVS and some other niceties. Can be used to create patches that contain versioning changes. With Meta-CVS, people can restructure directories in conflicting ways, and then resolve conflicts when they merge the structure.

    http://users.footprints.net/~kaz/mcvs.html

    This doesn't add anything else; no atomic commits or distributed operation over multiple repositories, etc.

    Of course, you can use branches to track foreign code streams, as you can with CVS. The nice thing is that you can rename things on your own branch and keep up with an unrenamed source of patches. Or if the other people are using Meta-CVS, they can give you patches that include restructuring.

    Meta-CVS is currently about 1600 physical lines of Common Lisp (with some CLISP extensions and bindings to glibc2) scattered in twenty or so files. A lot is done with little!

    1. Re:Check out Meta-CVS. by cmcguffin · · Score: 1

      Shouldn't that be "Meta-Meta-RCS"?

  27. So what's the best? by Yoda2 · · Score: 1
    We recently started using CVS with Chora and WinCVS. While CVS is much better than no revision system at all, I am a little disappointed.

    So here it goes...
    What is your favorite revision system and why?
    What is the URL?
    Is it open source or proprietary?

    1. Re:So what's the best? by MinusOne · · Score: 2

      My favorite is a commercial product (so shoot me) called Perforce. It has this very handy concept called changelists, where all modifications to the repository are made via a changelist. The nice thing is that any changelist can have any combination of files in the repository in it, and a uaser can work on multiple concurrent changes. From what I can tell from my somewhat limited experience with CVS, there is no way to do exactly what Perforce does, and I like the Perforce model better.
      The downside is that the server and client licences are not cheap.

  28. Great Approach! by qbalus · · Score: 1

    Having just gone thru the regexps arch docs it looks like Tom has done an excellent job.

    The concepts Tom discusses are right on target. It appears there is plenty of flexibility to implement policy based on project requirements.

    At first glance (have not installed yet) 'arch' has many of the same concepts as does BitKeeper and Sun's Teamware.

    I'd like to see software like this dual licensed i.e Qt/BitKeeper style licenses.

    Regards,
    Kramer

  29. ACID by jonabbey · · Score: 2

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

    Oh, come on. ACID isn't that hard to do. Lots of systems implement ACID. Why do you imagine that only Oracle, etc., can do it?

    1. Re:ACID by Anonymous Coward · · Score: 0

      Sir,

      In the real world this is the case, Only Oracle (et el.) has been able to do this.

      You cant implement ACID properties in a 40k program :)

    2. Re:ACID by Anonymous Coward · · Score: 0

      Fool.

    3. Re:ACID by Anonymous Coward · · Score: 0

      Even if you post as an AC, any negative moderations would effect your Karma, if you have /. cookies ever on your system and ever logged in as an user, in which case the last successful login would be delt with (same goes for posting anonymously while logged in as a user).

    4. Re:ACID by Anonymous Coward · · Score: 0

      ACID _is_ hard to do. At least if you do it right. Have you ever tried to create a system which survives a crash with partial written blocks and can still handle simultaneous writes? It can be done but it is not simple.

    5. Re:ACID by jonabbey · · Score: 2

      ACID _is_ hard to do. At least if you do it right. Have you ever tried to create a system which survives a crash with partial written blocks and can still handle simultaneous writes? It can be done but it is not simple.

      Well, I don't deny that doing full blown ACID in an SQL environment is hard. Doing ACID in systems that have less variability in terms of order and simultaneity of writes is not so difficult, however, but no one ever said that simultaneous writes were part of the ACID definition.

      Ganymede is an ACID system, it just serializes transaction commits and uses a transaction journal to record changes to its RAM-resident database. As long as the operating system properly sequences appends from a single file handle, and as long as the operating system supports atomic file rename operations, Ganymede will always recover as many transactions on restart as can be cleanly read from the transaction journal.

    6. Re:ACID by Anonymous Coward · · Score: 0
      Doing ACID in systems that have less variability in terms of order and simultaneity of writes is not so difficult ...

      Until your indecies start melting :-)

  30. Dialup? by gouldtj · · Score: 2, Insightful
    Maybe I don't quite get it...

    Let's say that I don't have write access to the Linux kernel tree. So I go grab a copy and make a branch on my machine and fix it. So then I post to the kernel mailing list saying that I've fixed this bug. Linus gets all excited and want so merge my branch in, but he can't because I am offline. So he forgets, and nothing happens.

    Now you could say that I could upload it to the central server, but I don't have write access to that. I wouldn't imagine that they would give me (a non-kernel developer, trust me, I'd break something) access to the tree.

    I guess I just don't get how useful this will be.

    1. Re:Dialup? by vidarh · · Score: 2

      So you'd make a patch set with the provided tools, tar it up, and upload it to any server you have write access to, or attach it to your e-mail.

  31. Written in 10k lines of sh, sed and awk?! by Anonymous Coward · · Score: 0

    If you read the paper that compares arch with subversion you'll see near the end that arch is written in about 10K lines of shell, sed and awk!
    That must be awful (awkful)! Just think about trying to maintain that beast!

    It would seem a lot easier to write something like this in a language like Perl or Ruby (actually prefer Ruby these days, but that's another subject....) and it would be more easiliy maintained.

    Conceptually, I kind of like arch - subversion does seem to have a lot of dependencies - a DB, a web server. Maybe it would be a good project to reimplement arch in something like Ruby?

    1. Re:Written in 10k lines of sh, sed and awk?! by qbalus · · Score: 1

      i just took at look at the code. it appears to be well written. i look forward to hearing why Tom choose to sh/awk/sed/... though...

      Kramer

  32. Some SCM Observations by wls · · Score: 5, Insightful

    I've done SCM for a number of years, professionally evaluated version control product, and helped edit an Anti-Pattern book on the subject. It seems, at least to me, that the majority of version control systems out there have the basis covered when it comes to check-in, check-out, branching, and labeling. The standard features, if you will.

    However, most of the reasons that I've seen companies change version control systems is because of completely different reasons. Here are a few that come to mind:

    - A version control system must be fast. I worked at one company where we tried to use Visual SourceSafe over a WAN; it took HOURS to share code. A good VCS should transmit the minimal amount of data.

    - A version control system must provide security. All too often management uses the SCM repository as kind of a shared directory (BAD, BAD, BAD) -- and people who have no need to see or modify the code, do... implicitly.

    - A version control system should provide extensive auditing and notification capabilities that can be discretely turned on and off. Allow logging the positive, the negative, and letting people know when particular operations happen to a set of files. In once case we attempted to get PVCS to automate scripts on a change to send mail to the PM. Checking in a directory flooded inboxes, since it could audit collections of code.

    - There MUST be a recovery mechanism. Ever try to recover a lost SourceSafe password? Yikes. (Gaining re-entry is possible, back stuff up, change your password, do a diff. Copy pattern into the admin record with hex editor. Login as admin with new password. Change admin password. ...this worked at least twice for me.)

    - Again, there MUST be a recovery mechanism. I love RCS, SCCS, and PVCS for their file-related mechanisms. Why? I've had SCM systems go down hard when the database got munged. Yes, you can recover from a backup, but a lot of work gets lost. With an open file format, you can at least hand fix localized problems.

    - That said, good version control systems should allow you to check in collections of files as atomic units, move files and directories, and operate on projects as a whole. Anytime I have twiddle with a repository, thereby breaking past history, something is seriously wrong with the VCS system model.

    - Good systems must have an IMPORT / EXPORT capability that PRESERVES HISTORY. The less I feel locked into a solution, the more likely I'll be to try it out. Porting between system is usually painful.

    - SCM systems must conform to how the CM manager wants to run things, not the other way around. Let's face it, users can and will make mistakes, and that's okay. Mistakes should be fixable. I'll never use StarTeam because it was too easy for users to check in accidentally branches that couldn't be removed. Tech support argued that version control should reflect the history of the product, where I maintain (and still do) that it should reflect the intended history. If I want to include user errors, that should be my policy, not the tools. My users should be able to reflect upon the project history and know why things changed. Period. You don't use a hack to undo a mistake.

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

    - A good SCM tool should remember tag history. Suppose I accidently move or delete a tag, now I want to put it back. Suppose I want to see where it's been. This case is rare, but anyone who's had a user twiddle with the wrong tags feels this pain as sharp and deep.

    - More ADMINISTRATIVE control. My big beef with CVS is when I have to twiddle with the repository structures and permissions directly to accomplish what I want done. No. No. No. There should be a tool (that audit's change) for standard operations.

    - An admin should have the ability to define, enforce, and audit user permissions that should be applied cross dimensionally against repository, commands, and elements within the repository.

    - Data should be stored in a manner that can be parsed by custom tools. It allows me to write extensions and automation.

    - Nothing should be possible in a GUI that is not possible from the command line. The inverse holds true as well. Everything should be automation friendly. Early versions of PVCS pissed me off for this reason. As a SCM manager, I've used both, and I'll take a command line over a GUI any day. My novice users want a GUI, my advanced ones usually revert back to command lines (and integrate it with their editors).

    - There must be readable 2 and 3 way diffs.

    - A good SCM tool will be able to produce reports, or at least make it possible to export information that can produce reports.

    - A good SCM tool should know how to handle binary files efficiently, rather than just storing the whole copy.

    - A good SCM system should not put a limitation on comments.

    - A good version control system should not try to "do it all" (CCC/Harvest) and do none of it well. When GUI's pop up off screen, or you have to artificially create packages for simple files, something's wrong. Which leads into...

    SCM systems should operate the way the users of that system do.

    There is a BIG difference between how commercial houses run things verses OpenSource projects.

    Commercial groups usually have a smaller set of developers, they are known in advance, and commonly use the locking model. OpenSource models tend to use concurrency a lot more, and operate on the applying diff's procedure. (Yes, I know, exceptions are out there.)

    Thus, some tools that feel more natural in some environments get quickly rejected in others. I've yet to see someone produce a readable guide about version control abstracted at a high level bringing all the terminology together. (Incidentally, I'm about to release one; email me for a draft.)

    The overall problem in tends to be that people look on the side of the box for features, rather than asking if the features are even applicable for what they're doing.

    Worse yet, proper SCM often gets sidestepped in commercial world. Ask: Do you want branching? You get, is it a feature?...yes! Now ask: Do you know when it's appropriate to branch, how to do the branch efficiently, how to graft branches back to the root, or how to physically do it... and you find out this is where a lot of bad CM happens. It isn't fun to inherit a screwed up repository.

    The most common downfall of SCM, as I've seen in the commercial world, is a failure of the those running it (quite often over-tasked infrastructure people) failing to understand the product being built with the tool, failure by team leads to communicate repository structure, failure by management as they use the SCM tool as a substitute for communication, and failure by the developers who don't know how to use the tool and when to use the appropriate features.

    1. Re:Some SCM Observations by Anonymous Coward · · Score: 1, Informative

      I've yet to see someone produce a readable guide about version control abstracted at a high level bringing all the terminology together. (Incidentally, I'm about to release one; email me for a draft.)

      Some good work in clearing up the CM-terminology has been made in:"Streamed Lines: Branching Patterns for Parallel Software Development"

    2. Re:Some SCM Observations by botemout · · Score: 1

      Nicely detailed and knowledge based ;-)

    3. Re:Some SCM Observations by Raphael · · Score: 2

      There is one thing that you did not mention and that is important for many OpenSource projects: weakly connected clients.

      Many contributors to OpenSource projects are doing their development at home. Although some of them have a cable or xDSL connection, many others are still using a slow modem and an expensive telephone line (especially outside the US). A good SCM system for OpenSource projects should therefore support these weakly connected users as well as possible.

      CVS is far from ideal, but not too bad from that point of view because you can work for a while in your local tree and then update/commit without transmitting too much data on the network. Systems like Rational ClearCase require a specific setup and different clients (Attaché) for that.

      With CVS and some other systems, it is even possible for someone who has no direct connection to the Internet to get/checkout only a small part of the tree (or individual files) on some computer that is connected to the Internet (at work or at school) and then take the files at home, modify them and upload the changes. This is possible because you can easily remember or write down the names (and optionally the versions) of the files that you want to fetch with CVS. I think that the proposed "arch" system is worse than CVS in this case.

      --
      -Raphaël
    4. Re:Some SCM Observations by Anonymous Coward · · Score: 0

      Systems like Rational ClearCase require a specific setup and different clients (Attaché) for that.

      Not true. Clearcase supports snapshot views, you sync up once and then it reconciles the changes when you sync up the next time.

      --
      chris

    5. Re:Some SCM Observations by rangek · · Score: 1

      A version control system must provide security. All too often management uses the SCM repository as kind of a shared directory (BAD, BAD, BAD) -- and people who have no need to see or modify the code, do... implicitly.

      Since you seem to know a lot about this, or at least have thought about it more than I have, let me ask you a question about this point. Shortly after I finally convinced my boss to use CVS (the way he remembers it now we always used CVS...) he when a little nutty with it and started using in in just the way you described, as a "shared directory" of stuff people needed. As our sys. admin. I had a "bad feeling" about this, but he was nuts about it and it seems to work so i didn't argue.

      So my question is why is this so bad? Should I really push for CVS to not be used this way? Why?

      Thanks in advance.

  33. CVS is self contained by A+nonymous+Coward · · Score: 3, Informative

    CVS hasn't invoked rcs or diff or anything for ages.

    1. Re:CVS is self contained by markj02 · · Score: 2

      That's a nice change--I hadn't noticed. It only happened in a recent version, though (1.10, we are now at 1.11). I think that makes CVS even more attractive.

  34. 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? ;)

    1. Re:Confusion about version numbers. by wls · · Score: 3, Informative

      Excellent point; poorly worded on my part. In general, your statement ought to be true about all version number schemes inside a repository. (Cederqvist, section 4.3)

      Labels are our friends. Though, I've actually heard people using phrases like "We're modifying the 1.19.3.4.7.x branch today." That doesn't convey a lot of meaning.

      However, based on real world practices, people tend to use revision numbers as version numbers. They shouldn't. And there is a difference between the two. Your point illustrates that well; thank you for raising it. I'd like to think Sun didn't tweak their internal revision numbers to mirror product version numbers.

      Where I was going was, if numbers are going to be used to convey repository structure, it should be hack free. If revision numbers are going to be used to convey information, the user should have control over what gets used. The reserved use (which personally I like), in CVS's case came from [Cederqvist section 13]. PVCS is pretty darn good about giving the right level of control for those who want to twiddle numbers directly.

      I'm simply saying it's up to the person running the repository to decide -- ideally they should have a clue of what works well.

  35. Re:From his faq (or DB plus SCM) by sudog · · Score: 1

    Perforce incorporates a very fast database back-end to manage metadata on the server side. It's based loosely (many improvements since) on the Berkeley DB format.

    It also includes some very nice database journalling and checkpointing features for robustness.

    It's free for normal two-user, two-client use even. Only drawback: no open source.

  36. Neither funny nor accurate by William+Tanksley · · Score: 5, Informative

    I'm surprised this one got modded up. The poster clearly knows nothing about the topic; it's just an ignorant flame.

    In case anyone's wondering, arch supports and uses write permissions; however, it also allows you to start your OWN server, and people can hook up to it in parallel with the main server, and get all the branches which appear on either.

    You can commit all the crashy code you want on your own server, but it won't affect anyone who isn't using your server.

    The genius is that your server is hooked up to the original server, live, and you can track the changes they make, merging when and where you like. If the project manager for the original server feels like it (and if you let him), he can track the changes on your server as well. If someone else has started their own branch server, you can merge directly with them as well.

    VERY clever.

    Although I don't dig the Subversion trashing; Subversion is also very cool for its own purposes. I'm glad Tom took the time to underline the differences, but I'm unhappy that the result is so slanted. It didn't need to be: both arch and Subversion stand on their own as superb projects, and there's even another one coming out of IBM "sometime" which has its own merits.

    -Billy

    1. Re:Neither funny nor accurate by scotch · · Score: 2, Funny
      I'm surprised this one got modded up.The poster clearly knows nothing about the topic; it's just an ignorant flame.

      I'd say you must be new here, but your user id is too low for that. Hmmm, did you get a good deal for it on ebay?

      ;)

      --
      XML causes global warming.
  37. A Better Name: "Silverware" by FreeUser · · Score: 2, Interesting

    How about polyfork?

    Silverware would be a better name ... as one can spoon changes back into whichever tree one is following, knife out other changes, and fork the system themself if they wish.

    Seriously, this wouldn't give equal weighting to every trivial disagreement any more than free source code does anyway. Whether the control system is subversion, cvs, arch, or plane ole text files, we as individuals choose which fork we want to follow. Indeed, currently the mechanism in use is ftp (or alternatively http/rsync), ie. do you ftp linux-2.4.17.tar.gz, linux-2.4.17-ac3.tar.gz, or linux-2.4.17-myfork.tar.gz. Your decision is based on your trust of Linus, Alan Cox, or myself (probably nil). Using arch wouldn't change this, it would merely give you more flexibility in choosing bits of the Linus kernel, bits of the AC kernel, etc. in creating your own, personal fork that reflects your values and interests, and if others like your choices, they can benefit as well. If they ignore your choices, then who cares? You still benefit in having been able to make and prosper from your choices yourself.

    How on earth could that be a bad thing?

    That having been said, my wishlist would be support of gnupg signatures and authentication and scp instead of ftp. As to it being written in a shell scripting language, so what. If you really want to run a client or (god forbit) a server under Windows, there is nothing preventing you from writing a compatible client or server in the programming language of your choice (although the mockery one would receive for having used Visual Basic would probably detract some from the feeling of accomplishment, but I digress).

    --
    The Future of Human Evolution: Autonomy
    1. Re:A Better Name: "Silverware" by FreeUser · · Score: 2

      (although the mockery one would receive for having used Visual Basic would probably detract some from the feeling of accomplishment, but I digress).

      Hmm. That was meant to be a toung in cheek jab at Microsoft, but in rereading my post it sounds like a jab at you. Apologies, as that was not the intent. You might as easilly use java, C, C++, or C# if you're feeling particularly masochistic. The point is that you are given choice, which is always a net positive.

      --
      The Future of Human Evolution: Autonomy
  38. Revolutionary or playing catch-up? by sudog · · Score: 1

    Problems with the Arch vs Subversion comparison faq listed in the article.

    1. Allowing the "smarts" to reside within the clients means you are stuck with however a client is configured--how do you handle modification times if the client's clock is skewed, or messed up hard-drives? Administration of such a distributed system would be a heck of a job and not one I'd enjoy doing when you get up into the hundreds of clients.

    2. SCM based on a server-client system can be unerringly fast--blindingly so. Even if communication is entirely over TCP channels, an SCM system can be built to be a speed demon.

    Some interesting ideas: I like the idea of being able to mirror the files to a backup server--but there are still some pretty annoying replication problems that would need to be worked out. Does development stop while the backup is brought as up to date as possible? Do developers still have to check in their files once more if those were ruined since the last backup or mirroring cycle?

    I really think these projects need to stop playing catch-up to the larger SCM systems and start leading the field with advanced and stable functionality. :)

    Too bad I shouldn't build one. :) No worries. :)

    1. Re:Revolutionary or playing catch-up? by gstein · · Score: 1

      Subversion was designed to use Apache 2.0 as the network server. Among the many benefits are optimized network usage, conforming to the platform's best use of threads/processes, logging, monitoring of child processes, effective resource usage and recovery, etc. We fully intend SVN to be "blindingly fast" as you put it. No forks, no thread creation necessary on the server: Apache is ready and waiting for that request to come in :-). Mix that with on-the-wire compression, and diffs in both directions, and things ought to zip along quite nicely.

      Regarding backup/replication: since SVN is based on BerkeleyDB, we get its "hot backup" feature. You can do a full backup without stopping readers or writers. Presuming that you are mirroring the Berkeley .log files, you won't lose any information when you restore from backup + mirror. And with atomic commits, the client won't mark the working copy as "committed" until the server says it was. So if it goes down partway through the commit, just do it again after recovery.

      (and note that we get all of Berkeley's replication, recovery, backup, blah blah blah tools)

    2. Re:Revolutionary or playing catch-up? by Anonymous Coward · · Score: 0

      Allowing the "smarts" to reside within the clients means you are stuck with however a client is configured--how do you handle modification times if the client's clock is skewed, or messed up hard-drives?

      How do you handle skewed clocks? You get the server to ask the client the time... compare... and reject with an error if they are not the same(ish). Big deal?

  39. Re:name hierachies by Graspee_Leemoor · · Score: 1

    Most people who release cool free software these days have their own domain name. This will be simply another reason to get a good one. Even if you haven't got a domain name you cold use sourceforge, so for example, my toy programming language would be net.sourceforge.stalk. I can definately live with that.

    graspee

  40. SCCS to CMS to Sable by stox · · Score: 2

    RCS to CVS to arch, same story, a decade later. However, arch is far more competively priced. ;-)

    --
    "To those who are overly cautious, everything is impossible. "
  41. Re:a better question is this: by Graspee_Leemoor · · Score: 1

    I know you probably know, but that was a different Death Star- v2.0 if you like. The reason it looked the same is because the (evil) Ewpire said they were not going to release any new battlestations, just concentrate on the security and stability of the old design.

    graspee

  42. 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.
  43. Uggghhh.... [OT] by ryanvm · · Score: 4, Insightful

    I am getting soooo tired of this notion:
    Arch also poses its own answer to the 'Linus Doesn't Scale' problem.

    Look people, the "Linus doesn't scale" issue is NOT something that can be solved by replacing the use of 'patch'. Putting the Linux kernel on CVS (or Arch or whatever) would just allow people to commit stupid changes.

    The reason Linus doesn't scale is not because he doesn't have enough time to run 'patch'. It's because changes to the kernel MUST be approved.

    1. Re:Uggghhh.... [OT] by cduffy · · Score: 2, Informative

      What it would do is force the downstream forks to stay sync'd with Linus's version, and thus make merging between them easier. Yes, the code still needs to be reviewed -- but that's not the only task involved in maintaining a tree.

    2. Re:Uggghhh.... [OT] by StrawberryFrog · · Score: 2

      > Putting the Linux kernel on CVS (or Arch or whatever) would just allow people to commit stupid changes.

      Not true. Putting the Linux kernel on publically writable CVS would allow that, but no one is seriously suggesting that.

      --

      My Karma: ran over your Dogma
      StrawberryFrog

  44. 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.
  45. Subversion looks much better than Arch by Anonymous Coward · · Score: 0

    Until those scripts are rewritten in C, I think I'd rather use Subversion.

  46. Re: prefacing by kiwipeso · · Score: 0

    So if I develop Java widgets, I should preface them net.neural.widget?
    Or do I give them nz.net.neural.widget?
    And what about when I get projects from subdomains going? games.net.neural.widget? or net.neural.games.widget?
    Wouldn't it be easier to just use the domain name in the order it works online?
    And is it better to use directories than subdomains ?

    --
    - Kaos games and encryption systems developer
  47. Re:This might be very bad by Anonymous Coward · · Score: 0

    Uh, no, decentralization is a capitalist idea. Centralization ("planned economy") is a communist idea. Loser.

  48. Good point, my example & mod up parent by kiwipeso · · Score: 0

    What if I had released my projects a few years ago when I was at CIT?
    I have nz.ac.cit.ee.amcp.lpg.widget then when I drop out I have to transfer to nz.net.paradise.amcp.widget
    then my corporate version becomes nz.co.netlogic.esee.widget which is stolen and I lose control of that.
    Then you get 2 competing projects called com.e-see.widget and nz.ac.vuw.sci.math.amcp.lpg.widget for a few months then I drop out of uni when I'm sick and go back to paradise then, now I run it from my domain name nz.net.neural.lpg.widget
    Wouldn't it be easier to use a URI for the widget name?

    --
    - Kaos games and encryption systems developer
    1. Re:Good point, my example & mod up parent by Anonymous Coward · · Score: 0

      Wouldn't it be easier to use a URI for the widget name?

      Or a really long GUID number.

    2. Re:Good point, my example & mod up parent by kiwipeso · · Score: 0

      Yes, a URI with with a GUID number would be fine. My phone number is just 10 digits and my cellphone number is almost the same as my home number.

      --
      - Kaos games and encryption systems developer
  49. Re:Oh for the love of Jesus by Anonymous Coward · · Score: 0

    You have a good point. I also cringe upon hearing these overused terms 'cathedral' and 'bazaar'.

  50. Does Arch work with Cygwin? by Anonymous Coward · · Score: 0

    I wonder.

    1. Re:Does Arch work with Cygwin? by Anonymous Coward · · Score: 0

      I would guess yes, although I have not yet tried it (no cygwin at work).

  51. Java package name prefacing by smcv · · Score: 2, Informative

    The canonical package name for your widgets would be nz.net.neural.(anything you like here)

    If you own multiple domains (subdomains, or not), you pick one or more to use. The most sensible strategy would be to pick the one you were most likely to keep. Whether it corresponds to a real web page, or server, or whatever really doesn't matter - all that matters is that you control the neural.net.nz domain, and you don't use the same package name for different things as anyone else at that domain.

    You do use directories for package name components - the class file for nz.net.neural.widgets.Widget (the convention is for class names to have initial caps) should go in nz/net/neural/widgets/Widget.class (replace / with your OS's directory separator if you don't use Unix). You often don't see this because classes are in .jar files, which have their own internal directory structure (they're slightly modified zip files).

    The domain has to be written backwards to put the most significant part first (otherwise neural.net and neural.net.nz would have overlapping namespaces, even though they might be owned by different people).

    1. Re:Java package name prefacing by kiwipeso · · Score: 0

      My point is, over 4 years I've had 7 different internet domains to run this project from. (if you count my free websites, I've had 11 domains in 4 years)
      Sure, now it's easy because I finally have my own domain name. But it would be easier if I used a URI pointing to my home email address or if I used my home phone number.

      I would say the name of the widget is the most significant part, eg: kaos.neural.net.nz , samizdat.neural.net.nz or dyson.game.neural.net.nz
      This is more logical because the widget is the important thing, not where I run it from.
      If I had released my previous project publically, then I would have lpg.name@email.nz and it would not need to be named according to where I was then.

      --
      - Kaos games and encryption systems developer
    2. Re:Java package name prefacing by smcv · · Score: 1

      OK, I never said it was perfect :-)

      Sun did make the mistake of assuming everyone had their own domain, but I think they were assuming only companies and similarly sized organizations would be writing anything much bigger than an applet. You could always have used nz.email.lpg_name for your previous project - it doesn't really matter, as long as nobody else would want that package name.

      This scheme is intended for library-type classes; I suspect the "executable" for many Java projects is in the "null package" (i.e. the project's root directory).

      When I said "most significant" I meant it in the sense of "most significant bit in a byte". If I write two related classes called SuperWidget and UberWidget which do stuff, and you write classes with the same names which do different stuff, it makes sense for my widgets to be in the same place in the directory tree, and your widgets to be somewhere else in the directory tree, rather than putting our (possibly unrelated) SuperWidgets in the same folder because they happen to share a name.

      I agree, for small-scale or amateur developers, this scheme isn't ideal - but it really doesn't matter what the exact package name is, as long as nobody else will want it. It's like XML namespaces - an XML namespace is represented by a URI (usually an http:// one), but there's no need for there to actually be anything at that address (some people put the DTD or XML schema there, but the W3C actually discourage that because they don't want people to get used to the idea that namespaces are anything except an abstract identifier). They're only using domains and URIs at all in order to borrow an existing unique identifier, instead of having to implement some sort of separate registering system.

    3. Re:Java package name prefacing by kiwipeso · · Score: 0

      I live in Wellington, New Zealand. This town has the greatest number of domain names per capita in the world, yet I have only just been able to afford a domin of my own now.
      The point is, some other company would have got a far better name to use than mine, yet they stole it from me.

      I say the whole thing would probably be better served by physical address or phone number than URLs.
      However, I guess that can all be included in the description files.

      --
      - Kaos games and encryption systems developer
  52. Have you ever used a revision control system? by cduffy · · Score: 3, Insightful

    If so, you've noticed that when you choose to merge data from branch (A) into branch (B) [no, it *doesn't* happen automatically unless you want it to!], then you have *control* over what parts of A go into B. You may have noticed that you can ask for the differences between A and B, and go through them by hand, and accept only specific parts -- just as someone doing patching does.

    No revision control system tries to replace good maintainership -- rather, their job is to make it easier.

  53. Source Control with Database Backend by mbishop · · Score: 1
    From Perforce's website: http://www.perforce.com/perforce/bullet.html

    The data manager implements optimized database services based on the Berkeley DB database package, customized for multi-user support. It maintains a meta-database describing the status and history of versioned files in the depot and transactions against the depot. The librarian is a highly efficient file archiver that stores repository files on disk local to the server. It writes text file versions in an RCS-compatible, reverse-delta format; binary file versions are stored in a standard compressed format.

  54. Re:name hierachies by cakoose · · Score: 1

    Sourceforge has a shortened domain name too. So that would make it just net.sf.stalk.

  55. conflict by daserver · · Score: 1

    Which (arch or subversion) manages conflicts best? And how do they differ from cvs? Looks like subversion uses a different version control of per commit not per file. Anyone could shed some light on this?

    1. Re:conflict by gstein · · Score: 1

      By conflict, I presume you mean "what happens if you check out, make a change, go to commit and find somebody else has modified a file after your checkout." I can't answer for arch, but Subversion is like CVS: the commit simply fails. You need to update your working copy. If the changes to the conflicting file cause (patch) conflicts with your edits, then you'll need to resolve them before committing.

      SVN is a bit nicer than CVS, though, in that the conflicts are stored in a .rej file rather than inline with the code. You have to remove that .rej file to let SVN know that you've handled the conflict before a commit can proceed. (this prevents the cases where people commit conflict markers into CVS).

      And yes: in Subversion, our revision numbers are per-commit; files do not get their own numbers. 'svn log' can show you the log messages for all commits (no need for ChangeLogs or cvs2cl.pl any more; well, unless you want to ship a changelog, in which case you do 'svn log > ChangeLog').

    2. Re:conflict by CaptnMArk · · Score: 1


      >SVN is a bit nicer than CVS, though, in that the
      >conflicts are stored in a .rej file rather than
      >inline with the code. You have to remove that .rej
      >file to let SVN know that you've handled the
      >conflict before a commit can proceed. (this
      >prevents the cases where people commit conflict
      >markers into CVS).

      Personally I like the CVS way (at least for simple changes). I hope there's a way to do it the CVS way

  56. simultaneous writes by spongman · · Score: 2
    if it's using FTP as it's transport, how does it handle simultanous writes to common files?

    i thought you needed some sort of atomic test/exchange method to ensure consistency in such situations?

    1. Re:simultaneous writes by GooberToo · · Score: 1

      I'll tell you right now that I'm completely ignorant of the implementation that's being used, however, as was often pointed out, FTP is being used as the transport and not the means to file management. I'm guessing this means they move the files around via FTP (from system to system) and then work with the copies (the newly FTP'd files) against the actual repository working set.

      That being the case, I assume that all common file access is serialized and handled internally and that FTP is nothing more than a mode of transport.

    2. Re:simultaneous writes by spongman · · Score: 2
      indeed. but at the lowest level, what happens when two clients connect to the ftp server and attempt to overwrite, create or rename the same file?

      a reliable source-management system requires some kind of locking infrastructure, and i don't think that ftp provides such a thing.

    3. Re:simultaneous writes by GooberToo · · Score: 1

      Again, I plead ignorance about the implementation details. Simply put, I find it hard to believe that such a thing is an issue. Unless you have specific instances to cite rather than broad and general speculations about a specific implementation which neither of us seem to know anything about, your comment is seemingly without merit.

      Agreed, a reliable SM system does require some sort of locking mechanism, but this hardly requires the transport to support this. Again, I could talk until I'm blue in the face about guesses as to why this isn't a concern however it would simply be a guess...as is your concern.

      Simple question. Did it say that they use standard FTP daemons or that they use the FTP protocol? If they are using a standard server then clearly you are going to be limited by the constraints of that server's feature set, however, if they are simply using the FTP protocol, then your comments are completely unfounded. Either way, I can easily imagine mechanisms which avoid your issue all together, so as far as I'm concerned, it's a moot issue.

      In a nut shell, I can't understand how your comment was mod'ed +1.

  57. Cross platform? by uwmurray · · Score: 1

    Everyone,

    I'm about to set up a source repository at my place of employment for a new project that we are working on. I was set to use CVS, as we have in the past, until I read this article. Arch seems pretty spiffy, and would be fun to try out. My only concern is that some of our developers use non-posix (ie windowsXP) systems for development. CVS is great because there are clients available for all oses, and integrated into many IDEs. Are there any cross-platform Arch clients?

    If not, one must think that perhaps this design be better implemented in Python || Perl || Ruby || Java instead of awk/sed/sh.

    Thanks,

    Andrew Murray

    1. Re:Cross platform? by Anonymous Coward · · Score: 0

      I got Arch to build under Windows/Cygwin after modifying a few Makefiles (.exe suffix was missing in one Makefile) and changing a few .c files (dirent is different, isspace() was not supplied), but "make test" failed due to a linefeed issue (\n vs. \n\r). I do not see a simple workaround.

      Suggestions?

    2. Re:Cross platform? by sethdelackner · · Score: 1

      I haven't tried any of this yet, but keep in mind that Cygwin has sh, awk and sed and it works just fine under Windows XP.

      Now to just download 'arch' and try it all out!

  58. Subversion corrections by srussell · · Score: 5, Insightful
    I'm not addressing Subversion vs. Arch, but rather Tom's evaluation of Subversion, which isn't entirely accurate.

    I'd also like to say, up front, to the Anonymous poster who asked:

    Anyone know a good system of incoroprating source control with a databases? Oracle and Postgres would do.

    Subversion does. The backend it currently uses is Berkeley DB, but the backend is pluggable. After version 1.0 comes out, expect to see a backend for one of the SQL databases pop up.

    Now, on to Tom's comparison to Subversion. Caveat: I am not a Subversion guru. I lurk in the developer mailing list, and I use Subversion myself. Therefore, I may make mistakes about details, but I'm fairly certain I won't provide completely bogus information. I got some reviews on this post from the Subversion dev list, including some comments from Tom, but any mistakes in here are my own, and they're copyrighted mistakes, dammit.

    I'm not going to quote whole sections; just enough for context.
    1. Smart Servers vs. Smart Clients. Subversion clients are also smart, although perhaps not as smart as Arch. Diffs travel in both directions, so a minimum of network traffic is used. Many Subversion operations (status, diffs against the last revision, etc) are purely client-side opereations.
    2. Trees in a Database vs. Trees in a File Systems This is misleading. You *can* get stuff out of the Subversion database with the standard BDB tools, so Subversion isn't required. Also, because Subversion is based on WebDAV, access to the database through a web server is a freebee; also, Subversion is very Windows friendly, from many points of view, which should help its adoption in a corporate setting. Subversion only stores the differences between two versions of a file or directory, which is space efficient. The advantage to being able to access a filesystem-based repository of diffs is arguable.
    3. Centralized Control vs. Open Source Best Practices In practical application, there is no advantage to the ARCH system over Subversion. Subversion allows per-file/directory sourcing, so you could create a project that includes sources from any number of different repositories. (This code is not currently working in Subversion.)
    These are simple mistakes. There is also one statement that is wrong: arch is better able to recover from server disasters The argument was that, because arch is a dumb FS, it is easily mirrored. The implication is that databases aren't easily mirrored. BDB is just as easily mirrored, and most other databases are easily replicated.

    Other comments pointed out were:

    • Subversion does not require Apache. It works over a local filesystem just fine. If you want network access, you need Apache.
    • Subversion has all of the strengths of Apache. You therefore get Apache access control (well defined and understood), SSL, client and server certificates, and interoperability with other WebDAV clients, among other things.
    • With Subversion, you have both client side and server side hooks, as well as smart diffs.
    • Arch has both revision libraries and repositories. The comparison document doesn't differentiate between them. In some cases, the comparisons made aren't meaningful. Revision libraries, for example "... also have to be created and maintained by the user. So comparing them to accessing past revisions through normal means in subversion is not a fair, or even really meaningful, comparison." (Daniel Berlin).
    • When comparing Arch's repositories to Subversion's there is no speed advantage. Arch's storage is either diffy (storing only differences), in which case it is not easily browsed and is no faster (at best) than Subversion; or the storage isn't diffy, in which case it isn't efficiently stored (imagine multiple copies of each file for each revision).
    • Subversion's choice of BDB as a backend was not accidental. Some of the tools Subversion got from using BDB are: Hot backup and replication, all kinds of existing tools that know about BDB databases (e.g. Python or Perl bindings). A body of - "community" knowledge. etc (Greg Stein).
    I've left out vaporware features, such as the future SQL backend of Subversion 2.0.
  59. Re:Does Arch work with Cygwin? No. by Anonymous Coward · · Score: 0

    Short answer: no.

    Long answer: no.

    After I hacked the Makefiles and corrected a couple of .c files (dirent incompatability, added my own isspace() macro), I finally got the thing to build successfully. But the real problem is that arch (unlinke Cygwin) treats the line endings /n and /n/r differently - as such nothing works at all. This is a fundamental assumption in arch. I don't see a simple workaround.

    Please correct me if I am wrong.

  60. BowelMover and ShitKeeper by Anonymous Coward · · Score: 0
    Arch sounds a lot like Bitkeeper only without the license problems

    And without Larry. If you have never had personal dealings with Larry, consider yourself lucky. Instant slashdot poll: how many people here has he not threatened with a lawsuit? He'll probably bring patent action against Tom Lord.

    AC

  61. nice feature? by Anonymous Coward · · Score: 0

    A nice feature I would like to have in revision
    control systems is that it can (optionally)
    compress the directory recursively for you and
    send it compressed, this
    will minimize download time as well as relieve
    developers from the daily compression of source
    directories.

    as to ftp, isn't ftp an acknowledged, rfc'd
    protocol? while cvs style of retrival isn't?

  62. Re: Recursive add in CVS by Malvolio · · Score: 1
    CVS does have recursive add, or at least something like it: cvs import. While this is usually used to import and track outside sources, it can also be used for inserting new subdirectories of your own creation into an existing repository module. Example:
    cd module/new_dir
    cvs import module/new_dir vendor_tag release_tag
    See the CVS documentation for more details.
  63. Solution by Aapje · · Score: 1

    Someone provides a machine on the Internet that contains an up-to-date branch, you can get access fairly easily because it is not official and is far from critical. You merge your changes with the branch and get some peer review by the other guys using the machine. If everyone's happy, you set a tag and notify Linus & co. They review your changes and merge them with the main repository if they like them.

    This could lead to a new phenomenom: Linux-clans. Groups of programmers that share a branch and review & test each others work. This could make life a lot easier for the maintainers of various pieces of Linux. Programmers could even mature to a server with a higher status. A very good programmer gets access to an 'elite'-branch, which is heavily monitored by the maintainers. Those on an 'apprentice'-branch would have to get their baseline approved by an elite-programmer before a maintainer is notified.

    This sounds extremely useful to me, far better than mailing your rough changes. In my scenario, Linus & co do scale. They don't have to scour the mailing list for patches, but can depend on requests from the elite's. Every request has been reviewed by a good programmer and is thus far more likely to be useful and integrated easily.

    --

    The Drowned and the Saved - Primo Levi
  64. CVS for VC++ by rp · · Score: 1
    the only problem was that sometimes a file would be edited using Notepad or something, that shouldn't have been, which introduced ^M characters that confused CVS.

    side note: you can have the CVS server convert such things automatically

  65. Use 'Katie' instead by Anonymous Coward · · Score: 0

    Katie. It's great.

  66. Yikes! by eric_aka_scooter · · Score: 1

    Yikes! I can't win! Okay, what I meant to say was, "let's call them Generic Company That Doesn't Really Exist Because The Real Company is Very Aggresive About Filing Lawsuits Against People Who Post Things About Them On the Internet, Inc."

    1. Re:Yikes! by kubrick · · Score: 1

      I think that might be safer, in today's litigous climate. :)

      --
      deus does not exist but if he does
  67. Katie uses a database by Geoffrey+D.+Bennett · · Score: 1

    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.

    Katie (available here) uses postgresql to store all its metadata. Using a real database has certainly helped a lot in terms of ease of implementation (as you said, not reinventing the wheel).

    I'm not saying it's a "good" (as in "usable") system yet, but it is definately getting there.

  68. Re:Some SCM Observations - shared directories, bad by wls · · Score: 2

    There are several problems that stem from the behavior you're asking about. Let's explore them.

    The primary purpose of a version control system is to... store revision history! (surprise.) The secondary purpose is to provide chronological associations between files. (for instance, this documentation goes with that version of the software) What happens is the non-initiated miss the purpose of the tool and view it as a central dumping grounds for unrelated "stuff."

    If you're just trying to share temporary artifacts, stick them in a public folder on your network, publish them on the intranet, don't pollute a project's repository with unrelated and transient materials just because you've got write access.

    Basically, if you can't tell what you have in a repository (and know why it's there), you've got a problem on your hands.

    I hesitate to reveal how many times I've had to clean up repositories that had superfluous files that didn't belong to the project or the repository in question, had versions spread across separate files, had no commented revision history or other identifying features, or where it was just being used as a backup.

    Let's face it - commercial version control systems are expensive. I once worked for a place where everyone had to get a license for the client just to get non-project related materials. The side effect was that this particular tool didn't have decent security, and it allowed everyone to access the source code by virtue of having rights to the repository. I've yet to get a decent explanation why the HR department needs access source code.

    Adding insult to injury, non-programmers usually don't "get it" when it comes to version control. As a result, things would mysteriously disappear. Turns out a non-developer was being 'helpful' by cleaning up stuff that didn't look "important." Thank god for backups.

    The version control system is supposed to help with change control, not make you a victim of your officemates' good intentions.

    Speaking of polluting repositories, or in this case, excessive growth, a lot of version control systems are not that efficient when it comes to storing binary data... such as a Word document. We'd often have people check in change after change after change to such documents, and the repository would get enormous. Doing standard checkouts on the project would take friggin' forever.

    Ironically, developer documentation (which was written in LaTeX, HTML, and plain ASCII text files) worked just fine. Wonder why... perhaps the developers knew how the tool operated and took advantage of that fact? I think so. Sure, they stored graphics in it, either as PostScript or multiple JPEG/GIF/PNGs - but those changed so little, it wasn't noticed.

    So, just as we've established a version control system shouldn't be used as file junk yard, we should also take note that there *are* specific tools for managing intra-documentation changes. It takes relatively little effort to use similar tags across two different toolsets, and thus keep everything in synch.

    Finally, and perhaps the worse offense, is management thinking that version control is a communication tool. I'm not making this up, but I've been in meetings where management put a memo in version control and lashed at the staff for not reading it. I like to say that version control is like the national archives, you can get anything you want, if you know it's there. It is NOT the Borg Collective; it isn't a broadcast medium, and it isn't a substitution for communication - no matter when you checked it in.

    Yes, CVS can be "abused" in the manner you're describing, but only for a short time. Eventually you'll run into technical limitations, strange CM policies that appear to have nothing to do with CM, and you'll be scratching your head asking "what the hell am I looking at?"

    Hope this helped!

  69. Solaris Version Numbering by JB318 · · Score: 1
    I'd like to think Sun didn't tweak their internal revision numbers to mirror product version numbers.

    Indeed, if you do a uname -a on a Solaris 7 box, it'll tell you that it's running version 5.7--since the internal version number scheme remained unchanged even after the big marketing rename of what would have been SunOS 5.x to Solaris 2.x many years ago.

    I wonder what's going to happen with it once Solaris 10 hits the streets, though...

  70. It is the opposote of ClearCASE by Per+Abrahamsen · · Score: 2

    From what I have heard, ClearCase is a centralized fileserver demanding some serious hardware. Very nice iff you get the hardware and manpower to run the server, a piece of junk otherwise.

    In contrast, arch seem to be very light and decentralized. Probably a bit more demanding on the end developers, but more flexible, and much less depending on (and demanding of) a cetral repository.