bug in svubversion 1.6.6: unmodified external directory is not deleted, when svn:externals is deleted.
Alexander Kitaev <[email protected]> Wed, 09 Dec 2009 18:57:40 +0100
| Newsgroups | gmane.comp.version-control.subversion.devel,gmane.comp.version-control.subversion.rapidsvn.devel |
|---|---|
| Organization | TMate Software |
| Message-ID | <[email protected]> |
Hello,
There is a serious bug in 1.6.6 (and in 1.6.5), external directory is
not deleted when svn:externals property is deleted.
That means that subsequent updates from a certain revision without any
modifications made to the target working copy will fail:
svn up -rN (svn:external set to "URL ext")
svn up -rN+1 (svn:external deleted)
svn up -rN+2 ("ext" directory added) - will fail because "ext" has not
been deleted!
Attached script reproduces the problem.
--
Alexander Kitaev,
TMate Software,
http://svnkit.com/ - Java [Sub]Versioning Library!
http://sqljet.com/ - Java SQLite Library!
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2428934
Please start new threads on the <[email protected]> mailing list.
To subscribe to the new list, send an empty e-mail to <[email protected]>.
test2.sh
(application/x-shellscript, 1 KB)
#!/bin/sh
# The next line is the only line you should need to adjust.
SVNDIR=/home/builder/usr/svn-166/bin
SVN=${SVNDIR}/svn
SVNSERVE=${SVNDIR}/svnserve
SVNADMIN=${SVNDIR}/svnadmin
URL=file:///`pwd`/repos
rm -rf repos wc import-me
${SVNADMIN} create repos
echo "### Making a Greek Tree for import..."
mkdir import-me
mkdir import-me/dir
mkdir import-me/dir2
(cd import-me; ${SVN} import -q -m "Initial import." ${URL})
echo "### Checking out WC..."
${SVN} co ${URL} wc
echo "### Setting svn:externals property..."
${SVN} ps svn:externals "ext ${URL}/dir2" wc/dir
${SVN} ci wc -m "external property set"
echo "### Update: external should be added"
${SVN} up wc
echo "### Deleting svn:externals property..."
${SVN} pd svn:externals wc/dir
echo "### Update: external should be deleted"
${SVN} up wc
${SVN} ci wc -m "external property deleted"
echo "### Creating new directory named as removed external directory"
${SVN} mkdir ${URL}/dir/ext -m "directory added remotely"
echo "### Receiving update (new directory named as removed external directory)"
${SVN} up wc