'Unfixable mixed-revision working copy in SVN
I have a branch checkout that is clean (no modifications), but I cannot reintegrate the trunk back into my branch, because SVN thinks I have a mixed-revision working copy:
c:\myproject> svnversion
2045:2047
The problem seems to be caused by one of my externals:
c:\myproject> svn propget svn:externals tools
-r1448 ^/tools/external/trunk/gandalf/bin gandalf/bin
-r1508 ^/tools/external/trunk/gandalf/include gandalf/include
-r1508 ^/tools/external/trunk/gandalf/lib gandalf/lib
-r1428 ^/tools/external/trunk/jsdb jsdb
-r2045 ^/tools/external/trunk/java/lib/jing.jar jing.jar
You will note that all of them are directory externals rather than single-file externals, except for jing.jar, which is the same version as what "svnversion" thinks is the lowest range of my working copy, which is supposed to be a clean checkout of r2047.
How do I fix this (besides not using the single-file external)?
I've tried doing updates, fresh checkouts, and svn cleanup, and it still has this problem. I'm using TortoiseSVN 1.6.12
Solution 1:[1]
Looks like you're not the only one with this problem.
The fix is to use the equivalent of svn update --ignore-externals
Solution 2:[2]
I came to a different solution, --allow-mixed-revisions:
svn merge -c7777 https://repo/app/branches/1.0 . --allow-mixed-revisions
Ignoring externals when updating didn't fix the problem for me even if I did a completely fresh checkout.
Solution 3:[3]
Note that this issue has been fixed since Subversion 1.7.0. Since then svnversion (and the merge logic) ignore file externals when determining the revisions.
Solution 4:[4]
Even immediately after updating/pushing my entire repository, I got this error message just for trying to rename a folder. Updating the folder again right before renaming fixed this issue for me.
Solution 5:[5]
Same problem, my FIX relates to Best answer (but I used switch command instead of update with no externals).
I describe how to fix it with Eclipse subversion.
Error in console
merge --dry-run --depth=infinity --force --ignore-ancestry -r133880:133881 svn+ssh://{svnPath} {localPath}
svn: E195020: Cannot merge into mixed-revision working copy [133?963:133?967]; try updating first
svn: E195020: Cannot merge into mixed-revision working copy [133?963:133?967]; try updating first
Dry-run merge completed abnormally.
I first refreshed (Team > Switch) my local branch with Ignore externals option
Output in console:
switch svn+ssh://{svnPath} {localPath} -r HEAD --depth=infinity --ignore-externals --force
Then, the merge or its dry run were successful.
merge --dry-run --depth=infinity -r133880:133881 svn+ssh://{svnPath} {localPath}
Dry-run merge complete.
===== File Statistics: =====
Updated: 5
Complete before/after output in console:
merge --depth=infinity -r133956:133957 svn+ssh://{svnPath} {localPath}
svn: E195020: Cannot merge into mixed-revision working copy [133?970:133?971]; try updating first
svn: E195020: Cannot merge into mixed-revision working copy [133?970:133?971]; try updating first
Merge completed abnormally.
switch svn+ssh://{svnPath} {localPath} -r HEAD --ignore-externals --force
At revision 133971.
merge --depth=infinity -r133956:133957 svn+ssh://{svnPath} {localPath}
--- Merging r133956 through r133957 into {localPath}
U {localPath}/index.html
Merge info recorded for {localPath}
Merge complete.
===== File Statistics: =====
Updated: 1
==== Property Statistics: =====
Updated: 1
Inspired by:
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Community |
| Solution 2 | Hakanai |
| Solution 3 | bahrep |
| Solution 4 | Eric Aya |
| Solution 5 |


