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:
Having a full blown Apache 2.0 server seems overkill.
That's for the server. You only need theAPR libraries for the client.
Re:Comments
Matts on 2003-07-10T21:13:09
Right, but that probably means it won't ever do disconnected operation. At least not without Apache 2.0 on the client.Re:Comments
rooneg on 2003-07-11T03:12:03
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 repositories. We aren't anywhere near that now, but I know people have plans for such things in the future.Re:Comments
jmason on 2003-07-11T16:58:05
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, instead of HEAD, but no biggie).
If they differ, mark them as opened for changes 'em with "p4 edit". This will *not* check the latest code from the repo; instead it just marks the *current* file contents as changed and possibly requiring checkin.
Finally, "p4 sync; p4 submit". Any changes are checked in; any marked-for-edit files that haven't really changed, will be skipped since there's no delta; any conflicts have to be dealt with using "p4 merge". Super-easy!
for deleting files, renames, etc., things get a little trickier, but those are infrequent occurences. The above served me very well for a long time using p4 on dialup, and from the opposite corner of the world.Re:Comments
rooneg on 2003-07-11T17:19:27
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, committing changes, and a few other such things, all without a network connection.
(and yes, we know that keeping a pristine copy means we have disk space issues, and it's a post 1.0 enhancement to make that optional in some cases if you so desire.)Re:Comments
Matts on 2003-07-12T00:09:37
Checking things in is the entire point for me.Re:Comments
jmason on 2003-07-11T16:50:23
Actually, you don't need to run Apache at all; there's an svn-over-ssh mode too.
Re:P4!
rafael on 2003-07-10T20:37:22
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.
Re:P4!
Matts on 2003-07-10T21:14:38
Maintainers' attitude doesn't bother us too much - we do use qmail after all;-) Re:P4!
Matts on 2003-07-10T21:18:56
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?Re:P4!
jdavidb on 2003-07-11T15:50:11
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.
Re:P4!
ask on 2003-07-14T09:26:22
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
Re:ClearCase
jmason on 2003-07-11T17:00:12
oh yeah -- BTW if Clearcase comes up, run away screaming. Here's my thoughts on that "product". Summary: right up there with most of the other Rational products in terms of usefulness, reliability and usability;)
Re:Aegis?
Ovid on 2003-07-11T10:23:33
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.