Why is my repository taking up so much disk space?

The logfiles will grow forever, eating up disk space, unless you, (as the repository administrator) do something about it.

The repository stores all your data in a Berkeley DB environment in the repos/db/ subdirectory. The environment contains a collection of tables and logfiles (log.*). Berkeley DB journals all changes made to the tables, so that the tables can be recovered to a consistent state in case of interruptions.

At any given moment, Berkeley DB is only using a few logfiles actively; the rest can be safely deleted. If you keep all the logfiles around forever, then in theory Berkeley DB can replay every change to your repository from the day it was born. But in practice, if you're making backups, it's probably not worth the cost in disk space.

Use svnadmin to see which log files can be deleted. You may want a cron job to do this.

$ svnadmin list-unused-dblogs /repos /repos/db/log.000003 /repos/db/log.000004 [...] 
$ svnadmin list-unused-dblogs /repos | xargs rm # disk space reclaimed! 

You could also use Berkeley DB's db_archive command: $ db_archive -a -h /repos/db | xargs rm # disk space reclaimed! See also svnadmin hotcopy or hotbackup.py.

Note: If you use Berkeley DB 4.2, Subversion will create new repositories with automatic log file removal enabled. You can change this by passing the --bdb-log-keep option to svnadmin create. Refer to the section about the DB_LOG_AUTOREMOVE flag in the Berkeley DB manual.