I recently moved my homedir into Subversion, and now I can't imagine life without it. Assuming that you've set up Subversion on a server someplace, the two things I had to do were: 1) exempt dotfiles from the repository, 2) symlink dotfiles I needed to their actual repository location. E.g.:
box0 2167$ ls -al 
total 776
drwxr-xr-x 18 phaller wheel   4096 Nov 15 17:29 .
drwxr-xr-x  4 phaller root    4096 Nov 14 19:32 ..
-rw-------  1 phaller wheel  11190 Nov 15 08:22 .bash_history
lrwxrwxrwx  1 phaller wheel     15 Nov  9 23:27 .bash_logout -> etc/bash_logout
lrwxrwxrwx  1 phaller wheel     16 Nov  7 22:18 .bash_profile -> etc/bash_profile
lrwxrwxrwx  1 phaller wheel     10 Nov  7 22:17 .bashrc -> etc/bashrc
drwxr-x---  5 phaller wheel   4096 Nov 15 07:47 .cpan
-rw-------  1 phaller wheel     67 Nov 15 08:15 .cvspass
-rw-r-----  1 phaller wheel 659056 Nov 14 17:49 .fonts.cache-1
drwxr-x---  3 phaller wheel   4096 Nov  7 22:50 .fullcircle
lrwxrwxrwx  1 phaller wheel      9 Nov  7 22:18 .gnupg -> etc/gnupg
-r--r-----  1 phaller wheel      8 Nov  9 17:36 .hwid
-rw-------  1 phaller wheel    214 Nov 15 17:19 .lesshst
drwx------  3 phaller wheel   4096 Nov 10 06:08 .macromedia
drwxr-x--- 16 phaller wheel   4096 Nov 13 23:08 .maildir
drwx------  3 phaller wheel   4096 Nov  7 22:50 .mozilla
drwxr-x---  2 phaller wheel   4096 Nov 14 07:27 .mplayer
lrwxrwxrwx  1 phaller wheel      9 Nov 10 19:15 .mutt -> etc/mutt/
drwx------  3 phaller wheel   4096 Nov 15 17:26 .ooo-2.0
-rw-------  1 phaller wheel    326 Nov 14 08:10 .ratpoison_history
lrwxrwxrwx  1 phaller wheel     15 Nov  7 22:35 .ratpoisonrc -> etc/ratpoisonrc
-rw-------  1 phaller wheel    346 Nov 15 17:26 .recently-used
lrwxrwxrwx  1 phaller wheel     12 Nov  7 22:16 .screenrc -> etc/screenrc
lrwxrwxrwx  1 phaller wheel      7 Nov  8 18:05 .ssh -> etc/ssh
drwxr-xr-x  3 phaller wheel   4096 Nov  7 22:31 .subversion
drwxr-xr-x  7 phaller wheel   4096 Nov 15 08:12 .svn
drwx------  2 phaller wheel   4096 Nov 14 00:10 .unison
-rw-------  1 phaller wheel   4582 Nov 14 00:10 .unison-log
-rw-------  1 phaller wheel   5800 Nov 15 17:29 .viminfo
lrwxrwxrwx  1 phaller wheel      9 Nov  7 22:16 .vimrc -> etc/vimrc
-rw-r-----  1 phaller wheel   1541 Nov 15 08:22 .xerrors
lrwxrwxrwx  1 phaller wheel     11 Nov  7 22:16 .xinitrc -> etc/xinitrc
lrwxrwxrwx  1 phaller wheel     13 Nov  7 22:21 .xserverrc -> etc/xserverrc
-rw-r-----  1 phaller wheel   1051 Nov 15 08:22 Makefile
drwxr-xr-x  3 phaller wheel   4096 Nov 15 07:50 bin
drwxr-xr-x 12 phaller wheel   4096 Nov 15 07:39 etc
drwxr-xr-x  3 phaller wheel   4096 Nov 15 07:48 lib
drwxr-xr-x 18 phaller wheel   4096 Nov 15 07:55 projects
drwxr-xr-x 12 phaller wheel   4096 Nov 15 08:15 var
As you can see, I have a couple main directories (bin, etc, lib, projects), which are all in subversion. The last main directory (var) is not in subversion and it's basically where I keep digital media and scratch files that I don't want revision controlled. To mark a file for non-inclusion in the repository, you set the svn:ignore property. For example, I want all my dotfiles to be not in revision control, so I create a file ~/etc/svn-ignore-hidden.lst:
*.swp
.[a-z]*
.[A-Z]*
.
..
and then run:
cd ${HOME}
svn propset svn:ignore -F etc/svn-ignore-hidden.lst .
That's it. I was able to cutover and rationalize my homedir on my home box, my laptop, and my colocated server in about 4 hours (including Subversion setup). So, it's not some crazy protracted evil battle to get it set up. ;)