Appendix B. Troubleshooting

Table of Contents

Common Problems
Problems Using Subversion
Every time I try to access my repository, my Subversion client just hangs.
Every time I try to run svn, it says my working copy is locked.
I'm getting errors finding or opening a repository, but I know my repository URL is correct.
How can I specify a Windows drive letter in a file:// URL?
I'm having trouble doing write operations to a Subversion repository over a network.
Under Windows XP, the Subversion server sometimes seems to send out corrupted data.
What is the best method of doing a network trace of the conversation between a Subversion client and Apache server?
I just built the distribution binary, and when I try to check out Subversion, I get an error about an Unrecognized URL scheme.
Why does the svn revert command require an explicit target? Why is it not recursive by default? This behavior differs from almost all the other subcommands.
When I start Apache, mod_dav_svn complains about a bad database version, that it found db-3.X, rather than db-4.X.
I'm getting Function not implemented errors on RedHat 9, and nothing works. How do I fix this?
Why does log say (no author) for files committed or imported via Apache (ra_dav)?
I'm getting occasional Access Denied errors on Windows. They seem to happen at random.
On FreeBSD, certain operations (especially svnadmin create) sometimes hang.
I can see my repository in a web browser, but svn checkout gives me an error about 301 Moved Permanently.
I'm trying to look at an old version of my file, but svn says something about path not found.

There are a number of problems you may run into in the course of installing and using Subversion. Some of these will be resolved once you get a better idea of how Subversion does things, while others are caused because you're used to the way that other version control systems work. Still other problems might be unsolvable due to bugs in some of the operating systems that Subversion runs on (considering the wide array of OS'es that Subversion runs on, it's amazing that we don't encounter many more of these).

The following list has been compiled over the course of years of Subversion usage. If you can't find the problem you're having here, look at the most up-to-date version of the FAQ on Subversion's main website. If you're still stuck, then send mail to with a detailed description of the problem you're having. [45]

Here are some of the most popular questions from Subversion's FAQ.

A nice feature of Subversion is that the repository understands copies and renames, and preserves the historical connections. For example, if you copy /trunk to /branches/mybranch, then the repository understands that every file in the branch has a “predecessor” in the trunk. Running svn log --verbose will show you the historical copy, so you can see the rename:

r7932 | joe | 2003-12-03 17:54:02 -0600 (Wed, 03 Dec 2003) | 1 line
Changed paths:
   A /branches/mybranch (from /trunk:7931)

Unfortunately, while the repository is aware of copies and renames, almost all the svn client subcommands in version 1.0 are not aware. Commands like svn diff, svn merge, and svn cat ought to understand and follow renames, but don't yet do this. It's scheduled as a post-1.0 feature. For example, if you ask svn diff to compare two earlier versions of /branches/mybranch/foo.c, the command will not automatically understand that the task actually requires comparing two versions of /trunk/foo.c, due to the rename. Instead, you'll see an error about how the branch-path doesn't exist in the earlier revisions.

The workaround for all problems of this sort is to do the legwork yourself. That is: you need to be aware of any renamed paths, discover them yourself using svn log -v, and then provide them explicitly to the svn client. For example, instead of running

$ svn diff -r 1000:2000 http://host/repos/branches/mybranch/foo.c
svn: Filesystem has no item
svn: '/branches/mybranch/foo.c' not found in the repository at revision 1000

...you would instead run

$ svn diff -r1000:2000 http://host/repos/trunk/foo.c
...


[45] Remember that the amount of detail you provide about your setup and your problem is directly proportional to the likelihood of getting an answer from the mailing list. You're encouraged to include everything short of what you had for breakfast and your mother's maiden name.