endian
endian

Reputation: 4294

Suggestions please for a home version control system

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.

Upvotes: 8

Views: 3021

Answers (17)

Dónal
Dónal

Reputation: 187499

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.

Upvotes: 0

janm
janm

Reputation: 18339

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

2012 Update: There now a free 20 user version, still excellent, with new features.

Upvotes: 5

dbr
dbr

Reputation: 169535

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
    • 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
    • vim myfile.txt - make a new file, if you have existing files, you obviously can skip this
    • git add myfile.txt - start tracking the new file (similar to svn add'ing a file)
    • 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)

Upvotes: 4

Jacob Krall
Jacob Krall

Reputation: 28825

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

Upvotes: 2

Matthias Schippling
Matthias Schippling

Reputation: 2953

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.

Upvotes: 0

javelinBCD
javelinBCD

Reputation: 1931

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.

Upvotes: 1

Joel Mueller
Joel Mueller

Reputation: 28735

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.

Upvotes: 0

bob
bob

Reputation: 6485

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

Upvotes: 2

Andrew Taylor
Andrew Taylor

Reputation: 1850

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.

Upvotes: 3

Ian Hopkinson
Ian Hopkinson

Reputation: 3432

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

Upvotes: 0

Paul Nathan
Paul Nathan

Reputation: 40299

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

Upvotes: 0

Bobby Jack
Bobby Jack

Reputation: 16018

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.

Upvotes: 1

Jay
Jay

Reputation: 42632

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.

Upvotes: 1

Mark Biek
Mark Biek

Reputation: 150739

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.

Upvotes: 19

Mike Deck
Mike Deck

Reputation: 18397

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

Upvotes: 4

Ed Guiness
Ed Guiness

Reputation: 35237

See also

Best Version control for lone developer

Upvotes: 11

Mitchel Sellers
Mitchel Sellers

Reputation: 63126

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.

Upvotes: 3

Related Questions