Description
This is reproducible with both 1.7 and 1.8. Performing an external property update followed by an update of the file without performing a full update will cause E205011 and W155035 errors (error processing externals) and not allow further updates to the file. A recheckout of the repository is required to fix the issue. [update property on foo.c] svn update --ignore-externals (or --depth empty) svn update foo.c This was discussed on users@ with Johan Corveleyn and was able to be reproduced it was recommended to open a issue. The operations are used in this order in an attempt to avoid performing a full svn update on a repository with a large number of externals when only a single external is changed. At this time with 17 and 1.8, externals create a new http connection for each file and generates significant delays for large amounts of file externals (>100). The issue can be reproduced with the following: From Johan: Okay, with this information I can reproduce the issue (both with 1.7.9 and with trunk@1512490): [[[ C:\Temp\test>svnadmin create repos C:\Temp\test>svn co file:///c:/temp/test/repos wc Checked out revision 0. C:\Temp\test>cd wc C:\Temp\test\wc>echo line1 > test.txt C:\Temp\test\wc>svn add test.txt A test.txt C:\Temp\test\wc>svn ci -m"r1" Adding test.txt Transmitting file data . Committed revision 1. C:\Temp\test\wc>svn up Updating '.': At revision 1. C:\Temp\test\wc>svn ps svn:externals "^/test.txt@1 ext.txt" . property 'svn:externals' set on '.' C:\Temp\test\wc>svn ci -m"r2" Sending . Committed revision 2. C:\Temp\test\wc>svn up Updating '.': Fetching external item into 'ext.txt': A ext.txt Updated external to revision 1. At revision 2. C:\Temp\test\wc>echo line2 >> test.txt C:\Temp\test\wc>svn ci -m"r3" Sending test.txt Transmitting file data . Committed revision 3. C:\Temp\test\wc>svn up Updating '.': Fetching external item into 'ext.txt': External at revision 1. At revision 3. C:\Temp\test\wc>svn ps svn:externals "^/test.txt@3 ext.txt" . property 'svn:externals' set on '.' C:\Temp\test\wc>svn ci -m"r4" Sending . Committed revision 4. C:\Temp\test\wc>svn up --depth=empty --ignore-externals Updating '.': At revision 4. C:\Temp\test\wc>svn up ext.txt Updating 'ext.txt': U ext.txt Updated to revision 4. C:\Temp\test\wc>svn up Updating '.': Fetching external item into 'ext.txt': svn: warning: W155035: The specified path has an unexpected status At revision 4. svn: E205011: Failure occurred processing one or more externals definitions C:\Temp\test\wc>svn st S ext.txt ]]] I get it also when only using --ignore-externals (or --depth=empty), i.e. it's not necessary to combine both options in the step before the final update. [[[ C:\Temp\test>svn co -r3 file:///c:/temp/test/repos wc2 A wc2\test.txt U wc2 Fetching external item into 'wc2\ext.txt': A wc2\ext.txt Checked out external at revision 1. Checked out revision 3. C:\Temp\test>cd wc2 C:\Temp\test\wc2>svn up --ignore-externals Updating '.': U . Updated to revision 4. C:\Temp\test\wc2>svn up ext.txt Updating 'ext.txt': U ext.txt Updated to revision 4. C:\Temp\test\wc2>cat ext.txt line1 line2 C:\Temp\test\wc2>svn st S ext.txt C:\Temp\test\wc2>svn up Updating '.': Fetching external item into 'ext.txt': svn: warning: W155035: The specified path has an unexpected status At revision 4. svn: E205011: Failure occurred processing one or more externals definitions ]]]
Original issue reported by dlellis