19
votes

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

4

4 Answers

21
votes

Looks like you're not the only one with this problem.

The fix is to use the equivalent of svn update --ignore-externals

See here: Reintegrate a branch with externals fails in SVN

6
votes

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.

2
votes

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.

1
votes

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.