views:

598

answers:

6

Since I have a couple of mid-sized personal projects and a lots of code snippets, sample programs, libraries which usage is demonstrated using unit tests, I want to have this whole lump of code available all the time - at home, at work, when using my laptop, etc.

The most logical step is to have this codebase under the source control, so I have it on my home desktop PC (currently under Perforce depot), so here is what I want from this setup:

  • I want source control database to reside on my USB flash drive which I'm carrying with me all the time, or at least to have some easy way for transfering the database from the current working PC to the USB flash drive and vice versa.

  • Seamless move of the source control database: I'm considering writing some script for automatically backing up the current state of the repository in some useful form ready to be imported on the PC which I'm intending to use.

Have some of you encounter similar problem and devise a solution?

What do you think about this:

Getting some VMWare appliance (pre-installed Linux virtual machnine), then installing on it just the minimum source control server and the database, and then just carrying the virtual machine image on my USB flash drive and just loading it on the machine which I intend to use and access my personal codebase.

+7  A: 

Sounds like a problem distributed source code control was designed for. Try git.

http://git-scm.com/

Terry Lorber
+3  A: 

Have you looked at using a distributed solution like GIT or Mercurial so that you can move from machine to machine. You could save it to a USB if you wanted but you could have a look at using that as a backup point rather than your every day use.

AutomatedTester
A: 

I have put a filesystem based SVN repository on a flash drive without any problems. You would probably also want to carry a client program around with you.

pdemarest
+4  A: 

Had exactly same problem.

I've done it this way.

  1. (Tip) I always mount my PenDrive under the same letter on all machines.
  2. On the pendrive I created a folder called [SVN] (purposely in square brackets, so it's always the first "special" one.
  3. Using TortoiseSVN I created a repository there called dev.example.com (you can actually make the whole [SVN] folder a repository. I didn't.
  4. In my projects I created a SVN Checkout pointing to repository located here: file:///P:/[SVN]/dev.example.com/
  5. viola!
Michal M
+1. Considering that someone might have to use svn due to management/team choice.
namespaceform
+2  A: 

Looking into a distributed solution is probably the way to go. That's what I use to keep all my personal projects organised. If you're looking for a subversion solution then I've been using a free account from projectlocker.com. I think it gives you about 500mb of storage and it's completely private.

Then all you need is your subversion client to connect to it.

Shane Kenney
A: 

You might want to find an online repository since you mentioned you give presentations. People at the presentations might like to work with your examples and if your code was online (codeplex, google, sourceforge or any other) it would be very easy for those people to find and get.

dionysus55