Fairly simple to solve, I'll just use an external USB drive for storage! I plugged in a 32 GB USB drive, and now I needed to move my repository.
First I needed a folder to act as my reference location when I wanted to access the USB drive. It doesn't matter too much where, I went with: /media/usb
Created the folder with: sudo mkdir /media/usb
Set the ownership of the folder with: sudo chown pi /media/usb
Set the permissions of the folder with: sudo chmod 0777 /media/usb
After plugging in the USB device, I needed to know the device UUID by typing: sudo blkid
Then I needed to edit /etc/fstab for it to automount on boot: sudo nano /etc/fstab
For my new mount, I went with:
UUID=390A1652 /media/usb vfat uid=pi,gid=pi,umask=0000,sync,auto,nosuid,rw,nouser,nofail 0 0
As an alternative, I could specify to automount any USB drive that is plugged in as /dev/sda1. That seemed risky to me though as my current drive could change and the new drive could connect as /dev/sda1. That new drive wouldn't necessarily be vfat.
If I had wanted to mount any USB drive, the line would have read:
/dev/sda1 /media/usb vfat uid=pi,gid=pi,umask=0000,sync,auto,nosuid,rw,nouser,nofail 0 0
Lots of options and opinions on this:
uid & gid are my username; some references suggest entering the numeric value. You can check your account's id by typing: id -u and id -g. Turned out my pi user was 1000.
umask=0000 is the equivalent of chmod 0777 (everyone has read/write access).
sync has input and output be synchronously.
auto instructs the drive to mount automatically at bootup.
nosuid I don't understand, but one reference says: Block the operation of suid, and sgid bits.
rw to mount the drive with read-write access.
nouser permits only root to mount the filesystem.
nofail causes startup to not wait 90 seconds / error out if it fails to find the drive.
And finally reboot the Pi via: sudo reboot
The next task was to move my existing SVN repository to the external drive...
I stopped Apache which is used for SVN: sudo /etc/init.d/apache2 stop
I copied the repository over: cp -r repos /media/usb
Then I modified the Apache configuration to point to the new location of the SVN repository. The config file is located in /etc/apache2/mods-available, file dav_svn.conf: sudo nano /etc/apache2/mods-available/dav_svn.conf
My SVNParentPath was /home/pi/repos, I changed it to /media/usb/repos
Apache actually needs ownership of the repository folder, so I changed ownership to www-data: sudo chown -R www-data:www-data /media/usb/repos
And finally, restart Apache: sudo /etc/init.d/apache2 restart
I did a full restart to make sure everything came back up, and it did! So my SVN repository now has 32 GB to play with; far better than the few hundred MB from before.
The above instructions were mostly just for my reference in case I need to do this or similar again in the future, but I hope it can be of help to others!