Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

Matts (1087)

Matts
  (email not shown publicly)

I work for MessageLabs [messagelabs.com] in Toronto, ON, Canada. I write spam filters, MTA software, high performance network software, string matching algorithms, and other cool stuff mostly in Perl and C.

Journal of Matts (1087)

Thursday July 10, 2003
11:36 AM

Version Control

[ #13374 ]

We're looking at new version control software at work. We're a bit sick of the branching/merging problems inherent in CVS development when you do a lot of work on branches. So I wondered if anyone here had opinions on the best options.

Here's the line up so far:

  • Arch - This looks really great, and possibly the best option. The C version is slightly immature, but it looks like it is tackling the problem the right way. Supports multi-way (star) merges and replays. Supports disconnected operation. Down side is no windows support (not even planned) and I'm not sure about viewcvs.cgi replacements.
  • Perforce - Well known in the perl community, and seems to be well respected. The downside is that the GUI tools are all for Windows only. But otherwise it has a fairly complete toolchain. Doesn't do disconnected operation as far as I can tell.
  • BitKeeper - Used by the Linux Kernel (so it has to be good, right?). Again it's commercial, so I'd rather know that it is good before trying it out on anything. Seems to basically be like Arch but for pay.
  • Subversion - Good because it's a CVS replacement (meant to be drop-in), but doesn't do anything to support multi-way merges as far as I can tell, and doesn't support disconnected operation. Having a full blown Apache 2.0 server seems overkill. Solves CVS's bugs, but doesn't seem to go that much further...
  • ClearCase - probably not a good idea.

Please give opinions.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • Perforce was showing a multiplatform Qt UI at their users' conference a few months ago. - Barrie
  • Having a full blown Apache 2.0 server seems overkill.

    That's for the server. You only need theAPR libraries for the client.

    --
    (darren)
    • Right, but that probably means it won't ever do disconnected operation. At least not without Apache 2.0 on the client.
      • Actually, you don't even need Apache on the server either if you don't want to. You can run our custom tcp protocol tunneled over ssh (like many people do with cvs today), if you prefer to avoid apache. As far as disconnected operation, that's a question for another day. People have talked about possibilities for it, but it's strictly a post 1.0 issue at this point. I suspect it will be something along the lines of each user having a separate local repository, and supporting merging of changes between r
        • btw I think svn is pretty similar to p4 in its support for disconnected operation; it's pretty trivial to hack. Here's how I did it when I was using p4:

          When you disconnect, you stop using "p4 edit" and start using a homebrew script like "o4 edit" instead, which just chmods the files +w.

          When you reconnect, use a script which runs "p4 diff" to compare your entire checked-out tree with the checked-in versions of those files. (Optionally, it can compare them with the revision they were checked out from, ins
          • actually, svn's support for disconnected operations is much cooler than the work arounds you can come up with for p4 ;-) we keep pristine copies of all files you've checked out, so you can run add, remove, diff, status, and a number of other commands without ever having to touch the network. this also let's us send diffs to the server instead of the entire file as CVS does when you commit. so in short, you can currently do just about anything other than finding old versions of files, reading log entries,
    • Actually, you don't need to run Apache at all [tigris.org]; there's an svn-over-ssh mode too.
  • perforce rocks. It's got a great web GUI, and it can do the best automated merges of any SCM tool I've used. Most importantly, it's really well supported, great company, open mailing lists, etc. Arch -- sounds good -- like p4 it does good automated merges. However I've heard negative things about the maintainer's attitude etc. This is a thumbs-down for me. svn -- good in all respects except for automated merges. Nowadays, I'd use p4 for a commercial project or svn for a free one.
    • To me, the big plus of p4 compared to svn is this ability to merge with history. But for other aspects, I find svn easier to use. No need to 'p4 edit' files, supports several operations (svn diff, svn status) without a connection, customizable. Note that I don't use GUIs.

      You could use p4 for free projects, for personal repositories. I think that several former pumpkings do.

      May I link once again to a couple of articles about svn [oreillynet.com].

    • Maintainers' attitude doesn't bother us too much - we do use qmail after all ;-)
    • My question to anyone who has used Perforce is: Have you used any of the other tools with great merge capabilities, like BitKeeper or Arch?
    • Apparently there's an Arch fork called ArX, so you can take your pick of maintainer attitudes.

      I say this as a person who thinks forks are a good thing.

      --
      J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
    • What Justin said.

      p4's merging magic is awesome. I hope SVN will get there some day too.

      Running the SVN server on Apache 2.0 gives you all the usual Apache-framework goodies (authentication modules etc) and is well worth it IMO.

        - ask
      --

      -- ask bjoern hansen [askbjoernhansen.com], !try; do();

  • We use ClearCase at work and it's definitely a bad idea.
  • I've been very happy with Aegis [sourceforge.net]. I'd be happy to go into more about the things I like (and hate) about it on IRC sometime. -jesse (obra)
    • You know, Schwern has some good things to say about Aegis. While he certainly realizes that it's not necessarily the best solution, it's a very nice one. If Aegis was more user-friendly (i.e., idiot proof for the non-technical folks and available on NT without Cygwin), I think I would probably dig into it more.