[plug] Source Code 'Repository'

Craig Ringer craig at postnewspapers.com.au
Thu Aug 18 16:59:50 WST 2005


On Thu, 2005-08-18 at 16:22 +0800, Timothy White wrote:
> I'm looking for a source code manager, or repository application. I've
> seen many different ones, and am looking for opinion as to what would
> be best.
> As my computer isn't online permanently I can't be the one who runs
> the server. So firstly it has to work via ssh (i.e. doesn't need root
> to setup and install).

I think most tools fit that category, though many offer other options as
well (such as Apache WebDAV for svn - which is *fantastic*).

> Secondly, it needs to be easy to checkout the project from any Linux
> computer and work on it and check the changes back in.

Well, if you need it from any Linux box CVS is probably your best option
by virtue of being the most common. Subversion is getting very wide
spread as well.

> It would be really nice if I can have multiple 'groups' of files. I.e.
> the working copy has everything. But checking out a version (not the
> dev version) would only give you the files needed for that version. So
> i could include files that contain notes, API specs... in the dev
> version, but they aren't in the releases.

This might be best done by just keeping the api docs, notes, etc in a
separate module. With Subversion you can do it by putting the api docs
and notes in a separate subdir to the main code, and using:

svn+ssh://server/svn/project/

to get the lot, or

svn+ssh://server/svn/project/src

to get just the sources (for example).

CVS doesn't as far as I know offer anything like that, and I have no
experience with the other alternatives.

> I also need an easy way to have versions. The most current being dev
> and then when I'm ready I make another release version. So a person
> should be able to check out dev, or a release. being able to check out
> intermittent stages would be nice, but not necessary.

Pretty much any revision control system should give you branches and
tags in some form or another, satisfying this requirement.

> Any pointers? I've used svn a bit, but I'm not sure it'd work for what
> I want.

It'd probably what I'd pick. The only issue is that it's a pain if
you're disconnected for long periods, since you can't `svn diff', `svn
ci', revert a file, etc.

A distributed revision control system might be better, but you might run
into issues with availability on different machines (plus there are *SO*
many of them and to me they all seem mighty weird).

--
Craig Ringer




More information about the plug mailing list