For my school work, I do a lot of switching computers (from labs to my laptop to the library). I\'d kind of like to put this code under some kind of version control. Of co
I will get lynched for saying this answer, but it works under Windows: RCS.
You simply make an RCS
directory in each of the directories with your code. When time comes to check things in, ci -u $FILE
. (Binary files also require you to run rcs -i -kb $FILE
before the first checkin.)
Inside the RCS
directory are a bunch of ,v
files, which are compatible with CVS, should you wish to "upgrade" to that one day (and from there to any of the other VCS systems other posters mentioned). :-)
I do this with Git. Simply, create a Git repository of your directory:
git-init
git add .
git commit -m "Done"
Insert the stick, cd to directory on it (I have a big ext2 file I mount with -o loop), and do:
git-clone --bare /path/to/my/dir
Then, I take the stick to other computer (home, etc.). I can work directly on stick, or clone once again. Go to some dir on the hard disk and:
git-clone /path/to/stick/repos
When I'm done with changes, I do 'git push' back to stick, and when I'm back at work, I 'git push' once again to move the changes from stick to work computer. Once you set this up, you can use 'git pull' to fetch the changes only (you don't need to clone anymore, just the first time) and 'git push' to push the changes the other way.
The beauty of this is that you can see all the changes with 'git log' and even keep some unrelated work in sync when it changes at both places in the meantime.
If you don't like the command line, you can use graphical tools like gitk and git-gui.
You could use Portable Python and Bazaar (Bazaar is a Python app). I like to use Bazaar for my own personal projects because of its extreme simplicity. Plus, it can be portable because Python can be portable. You will just need to install it's dependencies in your Portable Python installation as well.
You could put the subversion binaries on there - they're only 16ish megs, so you'll have plenty of room for some repositories too. You can use the official binaries from the command line, or point a graphical tool (like TortoiseSVN) to the repository directory. If you're feeling fancy then you could rig the drive to autorun the SVNSERVE application, making any computer into a lightweight subversion server the minute you plug in the drive.
I found some instructions for this process here.
Just to add an extra resource Subversion on a Stick. I've just set this up on my 4GB USB Drive, pretty simple and painless.
Thought I am now very tempted to try Bazaar.
Update: I've setup PortablePython on my USB drive, simple, but getting bazaar on there ...
I gave up, one dependency after another, and as I've got svn working.
If anyone knows of an easy portable installer, I'd be greatful.
Darcs is great for this purpose.
Setting up:
darcs init
darcs add -r *
darcs record -am "Initial commit"
Creating a repository on your lab machine:
darcs get E:\path\to\repos
Checking what you've changed:
darcs whatsnew # Show all changed hunks of code
darcs whatsnew -ls # List all modified & new files
Interactively creating a new patch from your changes:
darcs record
Interactively pushing patches to the repository on the drive:
darcs push
It's known to be slow for large projects, but I've never had any performance issues with the small to medium personal projects I've used it on.
Since there's no installation required you could even leave out the drive and just grab the darcs binary from the web - if I've forgotten my drive, I pull a copy of the repository I want to work on from the mirror I keep on my webspace, then create and email patches to myself as files:
darcs get http://example.com/repos/forum/
# Make changes and record patches
darcs send -o C:\changes.patch