Hi,
One of my colleagues got a hard-to-decipher error message after
trying to do a merge (trunk -> branch):
svn: E200007: Can't add '{some-path}\svntest\C\B' with URL
'{repo-path}/svn-test/A/B', but with the data from
'{repo-path}/tools/trunk/makecd'
svn: E175002: Error reading spooled REPORT request response
After about an hour of head scratching we figured out that something
like the following had occurred:
------------------------------------
> svn mkdir -m "Creating test structure" {repo-path}/svn-test
Committed revision 971.
> svn co {repo-path}/svn-test .
Checked out revision 971.
> svn mkdir A
A A
> svn ci -m "Created A"
Adding A
Committed revision 972.
> cd A
> svn propset svn:externals "B {repo-path}/tools/trunk/makecd" .
property 'svn:externals' set on '.'
> svn ci -m "Created svn:externals"
Sending .
Committed revision 974.
> svn up
Updating '.':
Fetching external item into 'B':
A B\bin
A B\bin\makecd.rb
A B\bin\mkisofs.exe
Updated external to revision 974.
At revision 974.
> svn cp . ..\C
A {some-path}\C
> cd ..
> svn ci -m "Branching"
Adding C
Committed revision 975.
> cd A
> svn propset svn:externals "B/D {repo-path}/tools/trunk/makecd" .
property 'svn:externals' set on '.'
> svn up
Updating '.':
Fetching external item into 'B\D':
A B\D\bin
A B\D\bin\makecd.rb
A B\D\bin\mkisofs.exe
Updated external to revision 975.
Removed external 'B'
Updated to revision 975.
> svn add -N B
A B
> svn ci -m "Moved external to B/D"
Sending .
Adding B
Committed revision 976.
> cd ..\C
> svn merge ..\A
svn: E200007: Can't add '{some-path}\svntest\C\B' with URL
'{repo-path}/svn-test/A/B', but with the data from
'{repo-path}/tools/trunk/makecd'
svn: E175002: Error reading spooled REPORT request response
------------------------------------
I *think* the problem here is that we're both moving the external
B -> B\D and in the same commit also add B. When we then try to
do the merge we first merge the file updates and this detects that
B is already present and under svn controll even though we're
also moving B -> B\D through updating the externals directive.
I would count this as "user error" rather than an "svn error" but
it feels weird that I can create a revision that cannot be merged
without first doing a svn delete (B) in the destination tree.
Thoughts?
Side note: This merge also managed to cause TortoiseSVN to crash.
Best regards
/Daniel Widenfalk