Hello,
Attached script demonstrates the problem. Relocating part of the working
copy (to use another protocol, i.e. https instead of https) creates a
versioned obstruction (disjoint working copy in place of versioned
directory).
When opening this working copy, Subversion however descends into
versioned obstruction and this causes various problems: disjoint
directory displayed as switched, update works (should fail), remote
status fails (should not fail).
There are different errors for different protocols, and in a script I've
used http/https pair.
I think, that additionally to fixing this error (do not descend into
disjoint directories which obstructs versioned entries) Subversion
should also disallow relocating part of the working copy and only allow
relocation from the working copy root.
--
Alexander Kitaev,
TMate Software,
http://svnkit.com/ - Java [Sub]Versioning Library!
http://sqljet.com/ - Java SQLite Library!
#!/bin/sh
# The next line is the only line you should need to adjust.
SVNDIR=/home/builder/usr/svn-169/bin
SVN=${SVNDIR}/svn
SVNSERVE=${SVNDIR}/svnserve
SVNADMIN=${SVNDIR}/svnadmin
URL=http://svn.svnkit.com/repos/svnkit/trunk/www
URL2=https://svn.svnkit.com/repos/svnkit/trunk/www
rm -rf wc
echo "### Checking out WC..."
${SVN} co ${URL} wc
echo "###"
echo "### Relocating subfolder..."
${SVN} switch --relocate ${URL} ${URL2} wc/kb
echo "###"
echo "### Status should show 'Obstructed' but shows 'Switched'."
${SVN} st wc
echo "###"
echo "### Update should fail because of the versioned obstruction."
${SVN} up wc
echo "###"
echo "### Remote status should not fail."
${SVN} st -u wc