views:

149

answers:

5

I want to start putting all of my non-code personal files (i.e., word docs, excel spreadsheets, everything but media, etc.) under version control. The main reasons I want to do this is so that I can scan for changes and have some some control before I check in the files to the repository. TortoiseSVN is perfect for this, however I'm loathe to pollute my file system with all of the internal svn folders. Does anyone do this and have any suggestions on how to either localize those private svn folders to one place, or use an alternative system? SourceGear Vault looks great in that it uses SQL Server on the back-end but it has no file explorer front-end.

Thanks for any thoughts.

+1  A: 

I did this for a while with subversion on unix machines -- kept a bunch of my home directory's contents under version control. Of course, on unix, .svn/ is invisible.

If you want to give it a try, just go ahead and pollute your stuff with .svn/ directories. You can always nuke them all pretty easily if you decide it was a bad idea. I bet if you give it a try, you'll train yourself to ignore the .svn directories before you know it.

Another option is to use some online service like dropbox. You get backup and versioning (as well as being able to share stuff with others) for free up to 2GB. Of course, you'll fill that 2 gigs and end up having to spend money -- but if you've not played with it, it's worth checking out. The version-tracking (via the web interface), and sharing/syncing is actually quite cool. I use it for managing shared project documents with remote co-workers.

timdev
giving it a shot and trying to ignore the svn directories is probably a reasonable bet. barry
The .svn dirs are hidden, but not invisible - they're still picked up by lots of commands. The one I find most annoying is when you try and do an autocomplete on cd - there's always that extra directory to choose from! Another is having to explicitly avoid the .svn files when grepping the source tree.
ire_and_curses
@ire_and_curses - The latter pisses me off to no end!
timdev
+1  A: 

Most source control systems don't handle binary files very well. Additionally, their workflow (IMHO) doesn't work very well for general office-type work. It might instead be worthwhile looking at different disk snapshot solutions. The idea is that they make "atomic snapshots" of your disk at different periods, and can keep them around for different times. It might take snapshots every hour, but only keep the last 5 hourly snapshots, the last 4 daily snapshots, 2 weekly and some monthly snapshots. This seems to match the workflow better for people using general purpose documents and applications.

Adam Batkin
+1  A: 

If you choose this solution, consider that :

1/ At any time you can 'svn export' your repository in order to get a tree without any .svn

2/ If you scan your tree with an external comparison tool (like WinMerge), you can teach it to ignore .svn directories entirely.

So you could:

  • work on your ".svn-free" tree,
  • check for any evolutions with WinMerge and copy the new versions of files to your ".svn-filled" tree (your SVN workspace)
  • checkin through TortoiseSVN
VonC
+1  A: 

Have you seen svk? It provides an abstraction layer on top of Subversion, and stores all the Subversion metadata in a central location on your local disk, so no more .svn files in every directory. You commit back to the local svk repository, and then mirror your changes back to the main Subversion repository. You can choose to amalgamate commits (e.g. make lots of small commits locally, but just one back to Subversion) or mirror immediately. It also means you have access to the metadata when you're on the move and not connected to the main repository, so you can do searches of previous revisions etc.

ire_and_curses
just looked at it, interesting features, looks complex to be honest
A: 

I use Git for my code and personal files and find it works really well. Takes a little work to get things setup, I use cygwin but I've heard msysgit is easier. No messy .svn folders, fast topic branches for experiments with easy merging, and I use Github to push my backups to everynight.

Peter Coulton
does git run on windows? is it easy to pick up?
I've been using Git on windows for about 18 months using cygwin and I find it works great. Git wasn't hard to pickup, and although the process is a bit different, each difference offers an advantage.
Peter Coulton