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. ;)