I am totally confused assuming I am in a working copy and do the following:
svn mkdir trunk
svn mkdir tags
svn mkdir branches
svn commit -m "added trunk branches and trunk"
cd trunk
touch a b c d e f g
svn add a b c d e f g
cd ..
svn commit -m "added files"
svn copy trunk tags/1.0
svn commit -m "tagged 1.0"
Now I want to delete a file and tag another version
svn delete trunk/e
svn commit -m "deleted file e"
svn copy trunk tags/1.1
svn commit -m "created tag 1.1"
I get an error message similar to the following:
/svn/repos/banana/!svn/wrk/1f39512a-0e1e-11e0-9d1f-5be991158436/63885/tags/1.1/e’
path not found
What the heck am I doing wrong here?
Update:
I found that if I do an svn update after the delete everything works fine. I would like an explanation for this behavior.
This apparently is a known issue with Subversion, when working with deletes after commits. When you commit, your working copy becomes a mixed revision working copy, which then does not allow commits of deletes.
You can verify this by running
svnversionbefore you do the updates/commits. You will notice the mixed revision is marked by a working copy version of something like “0:4”.From the Subversion best practices document:
This is also explained nicely in this article about mixed revision working copies.