15

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.
3
  • 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, 2011 at 19:31
  • 8
    Google won't give me your experiences in a forum i trust.
    – bryanbcook
    Mar 25, 2011 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, 2011 at 13:31

11 Answers 11

32

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.

11
  • 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. Mar 25, 2011 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?! Mar 25, 2011 at 22:13
  • 3
    @qes, in what way? Mar 26, 2011 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. Mar 26, 2011 at 17:27
  • 1
    "Mercurial is much nicer on Windows" - not anymore.
    – Zippo
    Aug 11, 2012 at 20:58
30

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.)

2
  • 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, 2011 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, 2011 at 15:50
7

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.

4

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.

6
  • Why a downvote?
    – Adam Lear
    Mar 25, 2011 at 20:31
  • don't know. must be perforce haters out there.
    – bryanbcook
    Mar 25, 2011 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. Mar 25, 2011 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. Mar 25, 2011 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. Mar 29, 2011 at 20:18
3

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/

2
  • 1
    +1. There's also bitbucket.org which provides free Mercurial hosting and allows private repositories on the free account.
    – Adam Lear
    Mar 25, 2011 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. Mar 25, 2011 at 20:00
3

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).

2

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.

1

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).

0

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.

0

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.)

-2

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.

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