Version Control System Recommendations

Associate
Joined
6 Dec 2002
Posts
661
Location
Belfast
We use Subversion in work and this runs on a Linux box, but is there anything out there that can be used on a single machine for non collaborative work i.e. a version of subversion or even CVS that runs on windows? I'd like to get version control running for my own personal projects and don't want to have to set it up on another machine as I develop on a laptop and don't always have access to the net.

Any recommendations would be much appreciated.
 
arty said:
I really rate Subversion both for both small projects (1-4) and much larger ones (5-100 or so). It does indeed have Windows binaries. :)

arty

Excellent. I notice these binaries do not work with Apache 2.2, this is what I use for my web server, so is it possible to install Apache 2.0 alongside a 2.2 installation?
 
I also think subversion is the best out of the ones I have tried (CVS/Darcs etc..)
 
blue_harvester said:
Excellent. I notice these binaries do not work with Apache 2.2, this is what I use for my web server, so is it possible to install Apache 2.0 alongside a 2.2 installation?

Yes, though you might need to manually edit the service name for the Apache 2.0 installation and you'll definitely need to make it run on a different port (which is a good idea for SVN anyway).

Alternatively, you could look into the mini server SVNServe (see here for some useful documentation). This avoids having a fairly heavyweight web server running.

arty
 
arty said:
Yes, though you might need to manually edit the service name for the Apache 2.0 installation and you'll definitely need to make it run on a different port (which is a good idea for SVN anyway).

Alternatively, you could look into the mini server SVNServe (see here for some useful documentation). This avoids having a fairly heavyweight web server running.

arty

Where can I download SVNServ?
 
Yeah it is. If you're using it on Windows beware the limitations of SVNServe (like only one repository). Linux version doesn't have these restrictions.

I rate Subversion very highly. We've been using it at work for about a year now on a few multimillion line projects and it's barely missed a beat. Rate it much higher than anything I've used previously.
 
I really like subversion, however if your wallet can stretch that far, it may be worth taking a look at Perforce too. I know people who have used it and absolutely love it.
 
Subversion is very good, and note NB you do NOT need apache or SVNServe for local file based repositories! (Which is what you'd want for a local own-use only situation!)

Edit: When you use Subversion, also install TortoiseSVN, it's a Explorer GUI client for Subversion that integrates into the Windows Explorer shell, so version operations become a matter of right clicking on files and folders and their status is indicated with icon overslays, extremely flexible and powerful... :)

Edit2: If you're going to use TortoiseSVN as your subversion client on a local PC, you only need to install that as it includes the subversion client dll's, IIRC.
Download Tortoise SVN from here: http://tortoisesvn.tigris.org/ (from the download page which points here: http://tortoisesvn.net/downloads)
 
Last edited:
Berserker said:
Yeah it is. If you're using it on Windows beware the limitations of SVNServe (like only one repository). Linux version doesn't have these restrictions.

I'm curious, we've got Subversion hosting several repositories on Windows using SVNServe... where is the restrictions documented or what is the problems that you can run into? We've not run into any yet so far (and have been using it for more than 3 years now...) :confused:
 
ByteJuggler said:
I'm curious, we've got Subversion hosting several repositories on Windows using SVNServe... where is the restrictions documented or what is the problems that you can run into? We've not run into any yet so far (and have been using it for more than 3 years now...) :confused:
Repositories, or directories within a single repository? The distinction is far from obvious given the way Subversion works.
 
Is there any reason—other than permissions, I guess—why one would want to create multiple repositories for multiple projects as opposed to subdirectories of one repository?
 
Size would be another, particularly if you're using a database-backed store for the repository. I'm not sure how the file-backed store works, so it may or may not be an issue.
 
I've got CVS set up locally to version control a Java project using Windows. I find it works well with Eclipse and was pretty easy to set up.

Having said that getting CVS to work with NetBeans was rather more difficult, more to do with NetBeans (or me) than CVS though.
 
robmiller said:
Surely size shouldn't be a problem, since SVN lazy-copies files and the Berkeley log-file thing was fixed?
I was thinking more from a maintenance/backup standpoint. I know the bdb thing got fixed, but it's still a liability as far a potential corruption goes (and that's as much hardware as software). At least with seperate repositories you can treat them seperately and if one should go down you don't lose the lot while repairs are underway.

On the other hand, multiple repositories gives you more to maintain. Swings and roudabouts. :)
 
Berserker said:
Repositories, or directories within a single repository? The distinction is far from obvious given the way Subversion works.

Repositories. We've got several projects in the one, in different directories etc. and several *other* unrelated, completely seperate projects, in another completely seperate repo. I think I understand the difference between a repo and a project folder... I could have course be wrong... :)

Edit: OK, I've just checked what we've got, and we've *definitely* got multiple repositories (each has it's own config file, with users etc in, and each contain its own set of projects, with its own revision line. If it was actually one repo, then the files/projects would all share one single revision number that gest incremented when any of the projects get updated.) Also I've checked the SVNServe documentation and it refers to "repositories" in the plural and also give examples implying that multiple repo's are possible:

"Once the svnserve program is running, it makes every repository on your system available to the network. "

and later

"When a client connects to an svnserve process, the following things happen:
-The client selects a specific repository.
-The server processes the repository's conf/svnserve.conf file, and begins to enforce any authentication and authorization policies defined therein.
[etc]"

As I've mentioned, we visibly have multiple repositories with seperate config files, users etc. So... anyway, I'm pretty sure there's no real limitation on the Windows version of SVN serve then in this regard... I guess that's some good news for you... :-)
 
Last edited:
robmiller said:
Is there any reason—other than permissions, I guess—why one would want to create multiple repositories for multiple projects as opposed to subdirectories of one repository?

Performance/scalability possibly, depending on how many files you want to track and how large they are. E.g. Sometimes you might want to keep large-ish or otherwise awkward files out of your main source repo (e.g. if you have to store many versions of large binary files, it's possibly an idea to keep these in a seperate repo, so they don't unneccesarily inflate the normal "source" repo.)
 
Back
Top Bottom