views:

1614

answers:

25

Hi everyone, I'm trying to find a source control for my own personal use that's as simple as possible. The main feature I need is being able to read/pull a past version of my code. I am the only developer. I've looked at a lot of different version control systems, but they all seem way more complicated than I need. I need one that's simple, runs under Windows, and doesn't expose itself to the network.

Specifically, the version control system should not require exposing an HTTP interface, it should interact with the local filesystem only. It just needs to be a version control system geared for one guy and one guy only. Graphical UI is a plus.

Does anyone know of software would satisfy what I'm looking for?

Thanks!

-Mike

A: 

You should check CVSNT as server and use any of the clients you would like (standalone or integrated with your IDE). There are plenty of them.

Biri
+38  A: 

Subversion is great -- you can run the server yourself our use something like http://www.assembla.com to host your code (although that exposes it to the network).

There are numerous gui applications like tortoise svn that would allow you to interact w/ the source control repo

Ryan Lanciaux
Actually, you don't even need a server. Simply installing TortoiseSVN and running against a local repository will suffice.
Anders Sandvig
Oh nice! I didn't ever try that :) Thanks.
Ryan Lanciaux
Jeff's post on how to set up subversion on windows: http://www.codinghorror.com/blog/archives/001093.html
George Mauer
You might also try Google Code as your repository, they have some good browser features for viewing diffs etc.
Ross Anderson
+6  A: 

Subversion with TortoiseSVN.

Like all version control systems, it will sound reasonably complex when you start off, but it's really very simple once you get into it, works well for a single developer, and doesn't require any network access if you don't want it to.

Plus, it's free.

Matt Sheppard
+2  A: 

You really can't get much easier than VisualSVN for version control on Windows.

Mark Biek
A: 

I have heard of a hosted Subversion vendor Versionshelf (http://www.versionshelf.com) on a podcast I listen to.

This site also has a list: http://snook.ca/archives/servers/hosted_subversion/

BrianP
A: 

Use Visual SVN to setup your server and then use Tortoise to access your repository. Both are free to use and we have been successfully using it for quite sometime now.

rams
+8  A: 

Sourcegear Vault is free for a single user and you can run both the client and the server on your own machine.

Chris Upchurch
+2  A: 

I like to use Google Code, even for my one man projects, as it provides a Subversion repository already set up. Also, the server is offsite, which protects against hard drive failures and other disasters.

Christian Oudard
i second it. it gives everything from a small personal project to a big one. source control, issue tracker, wiki, etc.
ragu.pattabi
A: 

@gorgapor: Doesn't the Google Code TOS specify an open source license? It's not a generally applicable solution in that case.

nickd
http://code.google.com/tos.html doesn't seem to mention open source, but there may be something that does when you create a project. Or I might have missed it in my quick reading.
Cebjyre
You're right, but when you create a project you must choose a license for the code and all the choices are open source variants.
nickd
+1  A: 
Zack Peterson
+2  A: 

You might find Mercurial to be pretty nice for that purpose. You won't have to set up a server and creating the repository is as simple as doing "hg init" in the directory where your work is.

Readonly
+1  A: 

I am also a lone developer, and I use Subversion and TortoiseSVN.

Setup of Subversion is quick and painless; it can be done in less than half an hour including setting up the repository.

There is no requirement by Subversion to run on a server, I actually run it on my local machine and keep my repositories on a separate drive. Connecting to the repository uses svn:// instead of http://. I'm not sure why you require that it does not expose itself to the network, but this would be a matter of security via obscurity. I'm sure networking experts could suggest better methods for locking it down, should that be necessary.

Once the repository has been created, commits and updates from the repository are as simple as right-clicking on a folder in Windows Explorer.

y0mbo
+8  A: 

From what I understand, and at the risk of sounding like a fanboy, you might want to consider a DVCS (distributed version control system) like git or mercurial. They essentially take away the central repository part, so it should be ideal to use when you're a solo developer.

Another advantage is that when you decide to add people to your one-man team, you don't have to set up a central repository. All they have to do is clone your repository and they're good to go!

If you're windows based and are used to a shell plugin like TortoiseSVN I'd pick mercurial. Their windows integration is just a bit better than git's, using TortoiseHg. The git counterpart (cheetah) is on hold at the moment, due to the developer getting sick and tired of all the demands people were making ;-)

If DVCS is too exotic for this situation you could always rely on SVN. I've heard good stories about the already mentioned VisualSVN solution. Install, make some repositories and go. Install TortoiseSVN for shell integration, or perhaps Subclipse or ankhSVN for eclipse and visual studio, respectively.

Note: I have not actually tried git or mercurial in a real life project, just some test setups. I now have a simple project WITH version control (using mercurial in my case), without having to have access to a central repository.

Erik van Brakel
+3  A: 

I use the free (2 user?) licence of Perforce. Powerful, fast, and well documented.

Aardvark
+1  A: 

Any distributed revision control system is best for lone developers, like git or Mercurial. Best thing is you can incorporate more developers to your project seamlessly, as opposed to having to give them access to your main centralized SVN or CVS repository.

Vinko Vrsalovic
+2  A: 

All the previous suggestions are pretty simple, and I know cvs is a bit out of vogue these days, but I like to use it's local mode for a repository that doesn't even need a server to install or set up. The repository can be anywhere on your hard drive. I have mine on a memory stick to have access to it anywhere even without an internet connection.

The key commands are:

cvs -d:local:/full/path/repository init

to create the repository

mkdir /full/path/repository/project

to create the module, and

cvs -d:local:/full/path/repository/cvs co project

to check out a local version.

TortoiseCVS gives you your Graphical UI

David Sykes
+2  A: 

I'm a very satisfied user msysgit for Windows. It contains a recent copy of git as well as a GUI, a shell and a history browser in a single install package.

No need for a server component and if you do decide to host it somewhere your repository is signed and cannot be modified by the hoster without you seeing it. Finally, moving the repo to a server is a easy "push" operation which keeps all of your history.

David Schmitt
Glad someone linked to msysgit, I've had much better results with it than the 'offical' Cygwin version.
Charles Roper
+2  A: 

Bazaar. See Bazaar in five minutes for a great start.

Whenever you save a file, run the $ bzr commit -m "Added first line of text" command, and it's all taken care.

If you edit over FTP, make the FTP folder as a drive or folder, and bzr update after the commit.

Bmore
+2  A: 

+1 for Subversion, for those not familiar with it I would recommend the SVN Book.

Andrew Burns
+2  A: 

VisualSVN Server is a complete installer for Subversion Server on Windows.

VisualSVN is a Visual Studio plugin for Subversion integration.

LaptopHeaven
+1  A: 

SVN and TortoiseSVN work for me. Definitely ensure you have offsite backup.

You might want to check out the wiki article Comparison of revision control software. A (slightly hard-to-read) comparison tool might help. You might enjoy If Version Control Systems Were Airlines.

bill weaver
+3  A: 

For what it's worth, you can use Subversion & TortoiseSVN without a server using file:/// URLs to connect to you repository. I've done this to create repositories on USB thumb drives that I can move from machine to machine.

Here's a nice write-up: http://www.fredshack.com/docs/tortoisesvn.html

Jim Harte
A: 

I haven't seen anyone mention Perforce. Perforce allows you to use their software for up-to 2 users for free. You can run the server and clients in the same machine, which will give you the environment that you want.

Looks like Aardvark beat you on mentioning Perforce :-) (darn simultaneous writing! ;-))I would add that Perforce, which we use at work, is a superb VCS, which an excellent (ergonomic) GUI client.
PhiLho
A: 

This is much the same question as Source control system for single developer

The bottom line is: yes there is. More than one.
My opinion is that SVN will do just fine. it does for me in similar cases, as described here: Single serving source control

Anthony
+1  A: 

You could go with Mercurial.

  • It's very easy to start working with and there's TortoiseHg which integrates nicely with Windows shell.
  • You don't need a server for it as it's a distributed version control system - you can hold a whole repository copy on a flash drive and push/pull changes from it.
  • If you wish, you can put hg in a web server mode that makes the repository easily accessible over http.
  • As opposed to SVN and CVS, it doesn't spread its metadata directories all over the repository. There's just one .hg directory in repository root.

I use it daily and love it!

macbirdie