An update with e.g. --set-depth=empty removes versioned files and directories
from the working copy which are out of scope of the new depth.
However, child working copies pulled in via svn:externals are not removed.
They stay behind as "unversioned" from the parent working copy's point of view.
In 1.6.x, this causes an error when the parent working copy is restored to its
former depth, unless the --force option is passed to svn update:
"Failed to add directory 'foo': an unversioned directory of the same name
already exists"
To avoid this error, svn could remove externals at the time the working copy is
made sparse, if they have no local modifications. If they do have local
modifications, svn could leave the child working copy in place but also tolerate
it when the former depth is restored.
In 1.7.x (trunk), no warning is printed, but there is a tree conflict being
flagged on the external unless --force is used. This is wrong and should be
fixed before the 1.7.0 release. Either the 1.6.x behaviour needs to be restored,
or the new behaviour suggested above needs to be implemented.