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

Reply via email to