Do I have to set up Apache to use Subversion?
The short answer is no. The long answer: if you just want to access a repository, then you only need to build a Subversion client. If you want to host a networked repository, then you need to set up either Apache2 or an "svnserve".
Why does the svn revert require an explicit target?
Subversion places a very high priority on protecting your data, and not just your versioned data. Making the svn revert command require an explicit target - even if that target is just '.' - is one way of accomplishing this.
What is the "dump/load cycle" people sometimes talk about when upgrading a Subversion server?
Subversion's repository database schema has changed occasionally during development. Old repositories, created with a pre-1.0 development version of Subversion, may require the following operation when upgrading. If a schema change happens between Subversion releases X and Y, then repository administrators upgrading to Y must do the steps listed.
Every time users try to access my repository, the process just hangs. Is my repository corrupt?
Your repository is not corrupt, nor is your data lost. If your process accesses the repository directly (mod_dav_svn, svnlook, svnadmin, or if you access a file:// URL), then it's using Berkeley DB to access your data. Berkeley DB is a journaling system, meaning that it logs everything it is about to do before it does so. If your process is interrupted (Control-C, or segfault), then a lockfile is left behind, along with a logfile describing unfinished business. Any other process that attempts to access the database will just hang, waiting for the lockfile to disappear. To awaken your repository, you need to ask Berkeley DB to either finish the work, or rewind the database to a previous state that is known to be consistent. WARNING: You can seriously corrupt your repository if you run recover and another process accesses the repository.