views:

113

answers:

8

This may prove OTT for the level of usage it'd get, but....

I'm working on some personal projects in Visual Studio Express at home. I've got a big desktop replacement laptop and a little ultraportable, both of which have been used quite happily for development, and a spare XP Home box running as a de facto home server.

I'd like to be able to run these projects through source control of some description, but these are personal projects for me - there's a limit to just how much work I'm prepared to dedicate to the source control over just keeping a folder full of dated zips on the server. I've previously used Visual SourceSafe which I know isn't perfect but it was inflicted on me and worked well enough for us, and IntaSoft AllChange.

IDE integration isn't an issue because as I understand that isn't possible with VS Express anyway. There'll only be one developer, me, and not huge numbers of versions flying around, so lots of sophistication on branching and merging isn't really needed.

Can anyone recommend something that'll provide me benefit greater than the hassle to set up and operate? Thanks :-)

A: 

SVN is pretty easy to set up and use. You can download an installer for the server from VisualSVN TortiseSVN is a Windows Explorer add-in which will let you check files in/out/etc. You can get it here

peter_mcc
+1  A: 

Fossil is a single stand-alone executable less than 1 MB!

http://www.fossil-scm.org/

It's simple, easy to set up. However not so popular (yet).

Other features:

  • Bug Tracking and Wiki
  • Web Interface
  • The repository is stored in a single-file SQLite database
rth
+1 for a new addition to my limited universe.
cape1232
A: 

You could still use Subversion with TortoiseSVN and just have a local Subversion file repository. This does not require setting up a subversion server but instead is hosted locally through the file system and still has all the benefits of subversion.

Here's a tutorial

http://vincenthomedev.wordpress.com/2007/10/15/setup-svn-local-repository-step-by-step/

David Young
A: 

Perforce (http://www.perforce.com) is also a fantastic source control package that many companies use. They have a free version that is fully usable with two users and five clients. It's really professional-grade stuff.

Other than that, SVN is very popular and has plug-ins for every IDE known to man. CVS is getting a bit stale. SourceSafe should not be mentioned in polite conversation :)

GIT is also becoming increasingly popular, although personally I feel it is a bit too heavy-handed for small personal projects.

EboMike
And yet you find perforce not "heavy-handed"? I find it quite the opposite, actually. Centralized version control for a lone developer seems like an overkill.
Santa
+3  A: 

I use Git for my personal use, even tough it is a "Distributed" source control system, for me it has allowed for very nice workflows on my local machine and syncing with my other machines (home x 2, etc) very nicely through github or directly to my home server.

For example, for personal projects I end up working on different features and/or bug-fixes at the same time and git's painless branching/merging allows me to switch between features, merge back and keep all organized very seamlessly.

Also very easy to setup.

At work we use SubVersion, and I still use git on my local machine to manage my coding workflow and then commit to svn repo

Jaime
+1 for Git and its DVCS cousins. You might want to look at Mercurial and BitBucket, too. FWIW, TortoiseHG and Mercurial support for Windows in general seems to still beat TortoiseGit and Git on Windows.
Santa
The nice thing about mercurial/hg and git is that you don't need a specialized server as they create their own repositories, not just a checkout of a remote repo. No crazy repo setup like in svn. 'hg init' and you've got a repo. hg serve and you're serving. That by itself is a huge time saver for a small project.
Paul Rubel
+2  A: 

I'd recommend Mercurial, a powerful distributed VCS.

Andrew
A: 

Of all VCS that I have used, git was easiest to understand, and it has many benefits. It works perfectly fine even in single-user paradigm. Although I'm a fan of command line, you can take a look through this link and this link to see it used on Windows, with GUI.

Amadan
A: 

Here's all it takes to set up a repository using mercurial, aside from install mercurial itself.

~/test$ mkdir mycode
~/test$ hg init mycode
~/test$ cd mycode/
~/test/mycode$ mkdir module1
~/test/mycode$ mkdir module2
~/test/mycode$ hg add module1 module2
~/test/mycode$ cd ..
~/test$ hg clone mycode mycode-dev
updating working directory
0 files updated, 0 files merged, 0 files removed, 0 files unresolved

You could set up your (empty) repository on your server, and then push and pull from your dev machine. If you want to work on another computer all you do is a clone similar to the one above:

  • if you've mounted your server, just use the path of the repository.
  • you can also easily clone your repository using ssh, like this.

    hg clone ssh://[email protected]//home/path/to/mycode ./mycode

Viola!

cape1232
And since it sounds like you are using Windows, TortoiseHG integrates into the file browser, so that you can access all your source control functions by right-clicking.
cape1232
One thing I like about mercurial is how easy it is to branch. It's so easy, I branch for every new piece of functionality I work on. When it's done and working, then I merge (push) back to mainline. You just `hg clone mycode mycode-newfeature`. When you're done, `hg push` from mycode-newfeature.
cape1232