views:

831

answers:

17

I have a home project that really needs to be in Source Control. I tried installing Subversion, which I have some experience with, but couldn't get it working. I don't particularly want to use SourceSafe. I'm a bit nervous about Git/Mercury as being somewhat cryptic, although this is only based on opinion rather than my experience.

Main requirements are:

  1. Must be open source (well, it needs to be free but that sounds a bit cheap!)
  2. Must run on Win32
  3. Would prefer a GUI interface if one is available

Many thanks in advance!

edit: Just to let you all know, I installed VisualSVN and had it working in no time. Thanks for the great advice.

+3  A: 

I personally use SourceGear's Vault product, it is free for single user access, and was a breeze to setup, and it has a GUI admin client as well as VS Integration.

Mitchel Sellers
Additionally, as it's IIS based, if needed, you can open port 80, and access it remotely.
James Curran
I use SourceGear and recommend it, I give a couple reasons why and links in http://stackoverflow.com/questions/131282/would-it-make-sense-to-use-version-control-if-im-the-only-developer#131353
ManiacZX
James, that is the main point I forgot to add! I don't know what I'd do without web access to my repository!
Mitchel Sellers
+11  A: 

See also

Best Version control for lone developer

Ed Guiness
A: 

The only options I'm aware of that meet your requirements are CVS and SVN. Of those 2, I would recommend SVN. I know you've already tried it without success, so perhaps you should try posting another question describing exactly what the problem was.

Our glorious leader posted a step-by-step guide describing how to setup SVN on windows, which might resolve your problem.

Don
+2  A: 

I think SVN is really your best bet. Take a look at the documentation here about how to set it up.

I've set up a couple SVN repos on a windows box and never really had a problem especially when you use TortoiseSVN

Mike Deck
+16  A: 

I know you mentioned you already tried Subversion and had some issues but you really can't beat the easy install & configuration of

VisualSVN Server

Insanely easy to setup & maintain.


Use VisualSVN for the back-end and TortoiseSVN for the client and you'll be up and running in no time.

Plus you can always do an svndump of the VisualSVN repository if you want to switch to something else down the road.

Mark Biek
This is the best suggestion. VisualSVN server could not be easier. If you can't get it to work, then your computer must not be turned on.
Chris Farmer
Yeah, I've yet to find anything easier. The fact that it seamlessly hooks into Windows Authentication is an added bonus.
Mark Biek
Yup, I've now got it working, and it's great. I'm still not 100% convinced by SVN, but anything's better than nothing! VisualSVN is absolutely brilliant, so many thanks.
endian
+4  A: 

Perforce has a free two user version. Excellent product. http://www.perforce.com/

janm
+2  A: 

It's not really in vogue anymore but I've had great success using CVS for version control. I keep a 'code' folder with all my code snippets in various languages, as well as all my personal home projects in a CVS repository. CVS is older and doesn't work as well as other systems with renaming or restructuring the folders/files. On the flip side, the fact that it's been around so long means there are many ports and GUI applications for it, as well as integration packages for IDEs, etc. I've been very happy with it for the past several years that I've been using it, despite any shortcomings.

Jay
Agreed, as my comment suggests :) +1
Bobby Jack
+1  A: 

I've used both cvs and svn, to great effect, for home projects. Personally, I sound svn slightly harder to set up initially - defining the directory structure and using those URLs for everything seemed to be give more hassle than it should've. Although svn is generally seeing greater use throughout the industry, if you don't have any problems with cvs, I would worry too much about the distinction. The concepts surrounding source control (which mainly overlap between the two) are more important.

Bobby Jack
A: 

Well, frankly, I'd suggest sucking it up and doing SVN. It can be a rough start, but it will pay off.

Paul Nathan
Ah, but VisualSVN makes it all so trivial. I'm a convert!
endian
A: 

Another vote for Subversion+TortoiseSVN, although it doesn't play nicely on domestic NAS based on FAT32.

Ian Hopkinson
+3  A: 

I can't believe nobody has mentioned GIT.

It's ideal for what you are looking for. Each working directory becomes a repository. It's a simple case of changing to your project dir. Init'ing and Committing then start working. Has some neat features for branching and merging.

Andrew Taylor
+1  A: 

You can use Subversion without the hassle of a server installation.

Just download TortoiseSVN and create a local repository in a folder that you prefer. Use the same client to do updates, commits...

More info: link1 / link2

bob
Hmm, thanks for that tip, I didn't know you could do that.
endian
A: 

I've been pondering this exact question, and have been seriously considering Bazaar. I can't tell you how good it is, not having used it, but you might want to check it out, as it looks promising. Similar to Git and Mercurial, but they claim it's much easier to set up and use.

Joel Mueller
You might want to consider [www.fossil-scm.org] I started using it and it is the easiest VCS to setup out there. It is only missing GUI interface right now.
javelinBCD
A: 

You should at least look at the open source fossil VCS www.fossil-scm.org it can work as both DVCS and a client server VCS.

  • Simple to install, a single executable.
  • Simple to backup, it is a single SQLLITE repository.
  • Simple to take your repository with you anywhere, I run fossil from a thumb drive and can now take my personal code anywhere my thumb drive goes.

Right now it does not have a GUI interface, but I am sure there will be one sometime in the future.

If you play around with fossil you will find that using command line VCS is not as complicated as it might seem.

javelinBCD
A: 

I use Buildix from Thoughtworks. You can install it on a dedicated server or use it as a VM. Though it's more than just SVN: It also includes trac, Cruisecontrol and Mingle.

Matthias Schippling
A: 

Someone mentioned Git; I'll mention Mercurial with TortoiseHg.

Jacob
BTW, one caveat is that TortoiseHg doesn't work on 64-bit Explorer instances; you have to explicitly launch a 32-bit Explorer process on Win64.
Jacob
+3  A: 

Don't be scared of by git. It has gotten far easier to use than it used to be!

It fits all your requirements (open source/free/run on Win32/have a GUI, which is included), and there are lots of good resources available.

As a really basic guide, using the command line (the "Git GUI" should be pretty self explanatory):

  1. mkdir myrepo - make a new directory, this could be an existing dir with your code in it
  2. git init - makes the directory into a git repository. this basically adds a .git/ folder to the current directory. This is like using VisualSVN, creating a new repository then checking it out to a working directory (just without the server
  3. vim myfile.txt - make a new file, if you have existing files, you obviously can skip this
  4. git add myfile.txt - start tracking the new file (similar to svn add'ing a file)
  5. git commit - commits whatever you have run git add on.

..and that's it. You have a version tracked file! When you change the file, you do git add myfile.txt again to "stage" the changes, then commit to add all the staged files into a commit.

It's slightly different to how SVN works. With SVN, you commit a file, and it gets sent to the server. With git, you stage a file (or multiple files, or even bits of a file, which is very useful), then commit them.

You can do all of the above easily (including creating repositories, staging specific lines in a file) in Git GUI.

On Windows, install msysgit.

Then, if you don't mind spending $9, watch the Peepcode GIT episode for a comprehensive overview of what git is, how it works, and how to use it.

Alternatively, GitCasts are also a very good (free) set of screencasts, which cover most of the basic stuff. Watch the ones you think would be useful to you, I would recommend watching the setting up, then normal workflow, then GIT on windows

Finally, GIT Magic is a great guide to doing everything with git. I use it a lot, despite having used git a lot over the last year or so (it's useful for answering "how do I..." things you forget. Say "how do I recover a lost commit", "how do I reset the repository to 4 revisions back")

I would also recommend playing around with GitHub. It's a very nice to use git-hosting site. When you create a new repository, it gives you the list of commands to make a new repository, and push your changes to to github (something I didn't really cover - the distributed workflow gitcasts, the peepcode episode and git magic all cover this really well)

dbr