Can't copy / move 'XXX.svn-base' to 'XXX.tmp': The system cannot find the file specified.
This error message typically occurs when you try to update your working copy.
The reason for this error is either:
-
There are actually 2 different files in the repository whose names differ only in case. This cannot work on a Windows checkout, because the Windows file system is not case-sensitive. It is likely that one of the files got added by mistake, so you need to find out which one, make sure there are no changes committed to the wrong file, then delete it.
or
-
There is a file with an illegal (illegal on Windows) filename. For example names like "con", "lpr", "com", etc. are illegal on Windows because those are device names. And of course names with "/\*?:|" and some other special chars in them are also not possible on Windows (NTFS and FAT).
And yes, we know the error message isn't really helpful in this case. But the error message comes from the Subversion library, which we can't change on our own.
There are several ways to solve the problem and to prevent it from happening again. Take a look at these instructions.
Uppercase/lowercase file name conflicts on Windows
There is a server hook script available at: http://svn.collab.net/repos/svn/trunk/contrib/hook-scripts/ that will prevent checkins which result in case conflicts.
If you already have two files with a name that differs only in case, you have to decide which one of them you want to keep and delete (or rename) the other one from the repository.
There are (at least) two possible solutions to rename a file without losing its log history. It is important to rename it within subversion. Just renaming in the explorer will corrupt your working copy!!!
Solution A) (recommended)
- Commit the changes in your working copy.
- Rename the file from UPPERcase to upperCASE directly in the repository using the repository browser.
- Update your working copy.
Solution B)
- Rename from UPPERcase to UPPERcase_ with the rename command in the TortoiseSVN submenu.
- Commit the changes.
- Rename from UPPERcase_ to upperCASE.
- Commit the changes.