How to resolve "svn: Can't find a temporary directory: Internal error"?

I have already googled the message, and I have plenty of disk space available on the SVN server (it's about 4% usage of 150 GB).

I have noticed that when I try echo $TMPDIR at the command prompt on the SVN server I get nothing.

What is making this a little confusing is that I only get this message from one location when I do an svn diff (that I've tested so far) - this error is not coming up when I try from three other computers (one of which is testing against the exact same repository, the other two are different repositories on the same svn server).

About the only difference I can see is that the broken working copy is connecting to the server by an IP address where all the others are using a server name (although this resolves over DNS to the same IP Address).

I'm hoping that I don't have to scratch the broken working copy and checkout a new one - unfortunately, this is a legacy project and not all changes have been properly revisioned.


Solution 1:

You also get this error if the disk is full, I discovered.

Free up some space and the error disappears.

Solution 2:

Eventually figured a method to do this (as well as getting everything currently unrevisioned under proper version control):

  1. Use the "find" command to strip all of the .svn directories from the broken working copy
  2. Move the working copy to another location
  3. Checkout a new working copy into the original location
  4. Recursively copy the old/stripped working copy into the new one
  5. No more problem

I reckon there must have been some corruption in one of the .svn files for that working copy.