Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm doing some prototyping locally that I would like to keep in source control (for backup and revert purposes) but I don't necessarily want to publish it as open-source or make available online for others to view.

What source control system would you recommend for local development? Any setup or walk through for my scenario is greatly appreciated.

I'm looking for:

  • Easy setup and administration. As this is my local machine, I'm constrained to Window OS and would really like to minimize the amount of environment configuration changes and necessary learning curve. There will only be one user, so I don't want to configure access rights, etc.
  • Low resource overhead, I want to host locally on my developer machine, so I don't want it sucking up my CPU. I don't plan on storing massive amounts of data, either.
  • Familiar. I've used SVN clients before. Visual Studio integration is a nice-to-have.
  • Portable. If I have to move it to a external drive or to another machine.
  • Free. Yes I want it all and don't want to have to pay for it.
share|improve this question

closed as off-topic by gnat, Dan Pichelman, GlenH7, MichaelT, thorsten müller Sep 21 '13 at 8:21

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – gnat, Dan Pichelman, GlenH7, MichaelT, thorsten müller
If this question can be reworded to fit the rules in the help center, please edit the question.

    
git for example likely does pretty much everything you want, and IMHO you could have figured that out easily using Google. It's not like there are hundreds of VCS out there. –  stijn Mar 25 '11 at 19:31
8  
Google won't give me your experiences in a forum i trust. –  bryanbcook Mar 25 '11 at 19:34
    
Is there any particular reason you only want to host it locally? It's generally better to host online (as a form of backup), to guard against your machine failure (it's unlikely but could happen sometime). –  apoorv020 Mar 26 '11 at 13:31

13 Answers 13

My personal recommendation is git. No server required, and putting a directory under source control is as simple as:

git init .
git add .

Then you commit as normal. According to this question, it has good visual studio integration as well.

share|improve this answer
2  
+1!!! Git is the s***. :) –  Evan Plaice Mar 25 '11 at 19:55
12  
He's constrained to Windows. Mercurial is much nicer on Windows. Just get TortoiseHG tortoisehg.bitbucket.org and you're good to go with a single installer. No hoops to jump through, no need for mysysgit or cygwin or anything else. –  Curtis Batt Mar 25 '11 at 20:52
2  
I fell for that hg/git myth too, but then I actually tried git on windows. Just because Linus Torvalds doesn't like/use windows, doesn't mean git doesn't work well on it because of people that do care. With TortoiseGit, you're going to get the exact same user experience as TortoiseHg, but with a lot more speed, at least on our 60,000 versioned file code base at work. And since when does a software developer care about one extra one time installer?! –  Karl Bielefeldt Mar 25 '11 at 22:13
3  
@qes, in what way? –  Karl Bielefeldt Mar 26 '11 at 2:37
1  
@Thorbjørn, don't get me wrong, msysgit is a very good "common denominator" decision. If you get help online, for example, you will get a CLI command as an answer. TortoiseGit probably has the second highest following among windows users, based on what I've read in forums, but the IDE lovers and explorer haters in your group won't like it. I would probably initially train a group on msysgit and TortoiseGit, but encourage them to experiment with other clients if there are features they feel are missing or suboptimal. –  Karl Bielefeldt Mar 26 '11 at 17:27

I'm using Mercurial for that. It's lightweight, easy to install and learn, and has all the features you're going to want for individual work. (Git was designed for Linux kernel development, and may well be the better choice for large distributed projects.)

share|improve this answer
5  
Mercurial was also designed for use in Linux kernel development. However, Linus was pretty much "no, let's use mine" and the Linux developers were all over that because Linus made it. –  Thomas Owens Mar 26 '11 at 13:05
6  
From what I have tried of git/mercurial, I prefer mercurial. For free hosting of unlimited private/public repository for 1 user (which si perfect for solo work), try bitbucket.org –  ryanzec Mar 29 '11 at 15:50

I would probably go with mercurial, but if you like SVN more than you can just use file type SVN repositories locally without any sort of infrastructure but a file system.

share|improve this answer

Perforce would do what you want. It's super-easy to set up (it comes with an installer), doesn't hog the resources (I've run it locally myself), has a VS plugin that works reasonably well, and has a free version for individual use.

I haven't tried to port it to another machine, though, so I don't know how good it does in that sense.

There are a few quirks with the VS integration, particularly around moving/renaming files, but those are easy to work around by using Perforce's client.

share|improve this answer
    
Why a downvote? –  Anna Lear Mar 25 '11 at 20:31
    
don't know. must be perforce haters out there. –  bryanbcook Mar 25 '11 at 21:11
    
The perforce plugin is horrible, with manual add/rename/moves, etc and adding VSSC bindings to solution file. There is an extension for VS2010 called vs2P4 or similar (search the online gallery for perforce). It doesn't make me like perforce more, just hate it less. –  Jim Schubert Mar 25 '11 at 23:33
1  
Also, +1 because we have terabytes of code and other files stored in perforce. As much as I dislike it, it is fairly solid from what I can tell. –  Jim Schubert Mar 25 '11 at 23:35
1  
Perforce seems like a dead letter to me. The checkout then edit model and the extremely heavy-weight branching are major liabilities, especially since there are excellent and completely free alternatives. –  kevin cline Mar 29 '11 at 20:18

If you're set on hosting it yourself, @Karl and @Anna's suggestions work. If you don't want to bother with that, you can use one of the many hosted source controls providers.

Project Portal offers a free SVN hosting service. http://projectlocker.com/

share|improve this answer
1  
+1. There's also bitbucket.org which provides free Mercurial hosting and allows private repositories on the free account. –  Anna Lear Mar 25 '11 at 19:40
    
Or you could setup your own SVN server using svnserve. It's not too hard to setup if you know how to configure port forwarding on a router (and DynDNS if you have dynamic IP) and have some time to google how to set it up. I ran one from home for about 2 years that I used for development for myself (in Denver) and another dev (in Montreal) to co-develp a project. If you have the time (and patience) though, I'd definitely suggest you learn git and setup a git server daemon. –  Evan Plaice Mar 25 '11 at 20:00

I use Kiln.
It uses Mercurial for source control and integrates with code review, bug tracking and project management tools.
Best of all, it's free for up to 2 users and your code is safely backed up on their hosting service (private hosting).

share|improve this answer

I love TortiseSVN (http://tortoisesvn.tigris.org/)

Everything is integrated into the windows shell, no extra server to configure or what not. Learning curve is vitually none. Find folder to create the repository at, right click and select Create repository. Do the initial check in if needed, then do the initial checkout to the directory of your source files.

You can do everything using the windows shell and svn folders are overlayed with icons to indicate if they are changes on them.

share|improve this answer

You can use git on codaset. codaset allows you to have 1 private repository, thus you're not forced to publish your code. But I'm not sure about integrating git with Visual Studio (I know that git works fine on Windows since I've used it with QT).

share|improve this answer

While it's not a local solution, if you only need the repository for backing up/reverting, use Dropbox. Otherwise, I'd suggest Mercurial.

share|improve this answer

I use Rocket SVN for Visual Studio, and I think it fits most, or at least some, of what you are looking for. It's completely free, and it integrates into Visual Studio. There are both client and server versions of it, but I've primarily used the client version (with the repository hosted on another machine.)

SVN (as well as Team Foundation Server and a few others), in my experience, also has the advantage of larger Windows adoption rate than other some version control tools. By the sound of your question, it sounds like you develop on Windows, so knowing the tools that your community is more likely to use is better career-wise in the event that you might have to change jobs.

Ultimately, it's a comfort thing. If you are already familiar with SVN, then I would probably stick with it.

share|improve this answer

Since TortoiseGit works pretty well, I'm using that, but at one time I was using Bazaar quite heavily in Windows. I think the learning curve is much lighter for Bazaar than Git, and Bazaar has more structured support for different VCS layouts than Git. That means you can use Bazaar a lot like SVN, and even use an SVN repo as the remote repo for a local Bazaar repo.

I thought it was a nice transitional product going from SVN to distributed VCS.

Also, I thought TortoiseBzr wasn't very good, but Bazaar comes with a very nice all-in-one GUI management dashboard which I used a lot. If portability is an issue, the managment dashboard might be a good option instead of one of the Tortoise*** products.

share|improve this answer

Putting a project in version control using Bazaar is as easy as:

bzr init
bzr add
bzr commit -m 'added files'

If you are familiar with Subversion, then you should feel right at home with Bazaar: the most common svn commands work exactly the same way in Bazaar too.

Bazaar is very easy to learn, which is no accident considering that usability was part of its main design goals. Bazaar is a tool that's intuitive and easy to understand, and it doesn't get in your way. Bazaar is consistent throughout, there should be few or no bad surprises (I had tons of good ones).

It fits the bill as you described your needs, with the one exception of Visual Studio integration. The last time I evaluated it in 2010, it was not ready for adoption at my workplace, but things may have changed since then. (In any case you wrote this is a nice-to-have.)

share|improve this answer

RocketSVN is a frozen product now. It's no longer being developed. So I use uberSVN and tortoiseSVN. They're both free and pretty easy to use.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.