[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Hard-to-understand error message after merge

From: Daniel Widenfalk <Daniel.Widenfalk_at_iar.se>
Date: Wed, 24 Apr 2013 09:22:16 +0200

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
Received on 2013-04-24 09:39:29 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.