Philip mentioned 'svn up -r0' in another thread. I did:
[[[ % $svn checkout --depth=empty https://svn.eu.apache.org/repos/infra/infrastructure infra-freshwc % cd infra-freshwc % $svn up --set-depth=immediates . subdir1 subdir2 % $svn up --set-depth=infinity subdir3 trunk % cd trunk % $svn up -r0 m Updating 'm': C m Fetching external item into 'm/f/m/e/rc.local': A m/f/m/e/rc.local Updated external to revision 792004. ... At revision 0. Summary of conflicts: Tree conflicts: 1 % $svn pl m/f/m/e/ Properties on 'm/f/m/e': svn:ignore svn:externals % find m | wc -l > 1 % sqlite3 ../.svn/wc.db "SELECT DISTINCT local_relpath FROM nodes WHERE local_relpath LIKE 'trunk/m%'" > 2 % danielsh "Are ./1 and ./2 identical except for 40 lines belonging to a directory external?" yes % ]]] So... it didn't really do 'svn up -r 0'; instead, it updated the whole tree (including files which aren't externals). The svn:externals properties that define the file externals are located on their immediate parents --- eg, on trunk/m/f/m/e/. Hope this helps. Let me know if I can provide additional information.