tldr: two issues with dir externals 1. While looking into the scenario behind issue #4085 I ran into a situation where 'svn up -r0' doesn't actually do that:
[[[ % ./new.sh >/dev/null % cd wc1/trunk/ % cd A % $svn ps svn:externals '^/tags tags' ./ property 'svn:externals' set on '.' % $svn up Updating '.': Fetching external item into 'tags': External at revision 1. At revision 1. % cd .. % pwd /tmp/svn/wc1/trunk % rm -rf A % $svn up -r0 A Updating 'A': Restored 'A' Restored 'A/B' Restored 'A/B/lambda' Restored 'A/B/E' Restored 'A/B/E/alpha' Restored 'A/B/E/beta' Restored 'A/B/F' Restored 'A/mu' Restored 'A/C' Restored 'A/D' Restored 'A/D/gamma' Restored 'A/D/G' Restored 'A/D/G/pi' Restored 'A/D/G/rho' Restored 'A/D/G/tau' Restored 'A/D/H' Restored 'A/D/H/chi' Restored 'A/D/H/omega' Restored 'A/D/H/psi' C A Fetching external item into 'A/tags': External at revision 1. At revision 0. Summary of conflicts: Tree conflicts: 1 % ls A B C D mu tags % ]]] 2. The original bug report also includes this error: [[[ % # deep inside a working copy % rm -rf % rm -rf s % svn resolved -q -R s % svn up -r0 s Fetching external item into 's/sk': svn: warning: W155000: Revision 800617 doesn't match existing revision -1 in '/abs/path/to/f/e/s/sk' ]]] But I don't know how to reproduce it. (The wc in question is in a quite fun state: 'sk' was originally a versioned dir that a local mod shadowed by an external; in HEAD, the directory was properly replaced by an external; and in the working copy, 'up' and/or 'up -r0' were done.) This was seen with svn 1.7.2.