Subversion in my ~/Home

Today I finished importing my home directory into Subversion. I
did this because I needed an easy way to keep files in sync between my
desktop and laptop and rsync was not cutting it.

I first thought of this after reading the new O’Rielly book on
Safari called Mind Performance Hacks. There is a hack that is
about productivity and it talked about setting up a version controlled
home directory (half jokingly). It also had a link to Joey’s svnhome which got
me started.

I did not follow the same ideas that Joey’s svnhome had or even $HOME in Subversion, another page
I found from Google. Instead I went my own way and am proud to say
that it is now working and I have the majority of my files into a
subversion repository.

Here is a quick layout, I will be able to get into more details later
on, as I test it out. Here is the main repository layout.

https://svn.www.freelancingdigest.com/home
 * bin/
 * dev/
 * doc/
 * dotfiles/

Each of these corresponds to a folder in my home, other than dotfiles.
So ls -l /home/eric provides four folders (tmp is unversioned):

drwxr-xr-x   3 eric eric 4096 2006-04-04 16:37 bin
drwxr-xr-x  15 eric eric 4096 2006-04-04 16:59 dev
drwxr-xr-x  31 eric eric 4096 2006-04-04 22:32 doc
drwxr-xr-x   3 eric eric 4096 2006-04-04 20:46 tmp

The subversion URL for this is to the dotfiles folder aka
“https://svn.www.freelancingdigest.com/home/dotfiles”. Inside here I have some
svn:excludes but mainly I have my svn:externals to pull from external
repositories (or a different path in the same repository). My
svn:externals looks like this:

eric@raptor:~$ svn propedit svn:externals .
bin https://svn.www.freelancingdigest.com/home/bin/
dev https://svn.www.freelancingdigest.com/home/dev/
doc https://svn.www.freelancingdigest.com/home/doc/

So when I do a svn update in my home folder, Subversion will first
grab my dotfiles area, then will grab my bin, dev, and doc area
updating each as it goes. Here is a transcript (note: I have more
svn:externals inside of dev/ and doc/)

eric@raptor:~$ svn up
Fetching external item into 'bin'
External at revision 47.
Fetching external item into 'dev'
Fetching external item into 'dev/ARS/support-site'
External at revision 370.
At revision 47.
Fetching external item into 'doc'
Fetching external item into 'doc/T/Todo'
External at revision 26.
At revision 47.
At revision 47.

It is pretty verbose but I will go through and grab all the updates at
once. Stay tuned and I will document what I did to set this all up in
more detail.

Eric Davis