On Sun, Aug 8, 2010 at 9:58 PM, Richard Biffl
<subversion-user...@blacklettersoftware.com> wrote:
> If I delete a file from a directory in my working copy, and commit the 
> deletion,
> and then delete the directory that held the deleted file, I cannot commit the
> working copy. I get a message instead that the directory is out of date.
>
> At that point, I cannot revert the directory deletion, and if I try to update
> the working copy, I am told I have a tree conflict.
>
> The way to prevent this problem, I've learned, is to update the working copy
> after I commit the deletion of the single file. But that's not intuitive,
> especially when I am the only user and I'm making changes from just one 
> working
> copy. It seems wrong that I should need to update immediately after I commit.
>
> Here is a list of commands that shows the problem. It's in Windows cmd:
>
> [starting with empty repository \svn\repo1]
> $ mkdir work1
> $ svn checkout file:///svn/repo1 work1
> $ mkdir work1\dir1
> $ echo blah > work1\dir1\file1
> $ echo blah > work1\dir1\file2
> $ svn add work1\dir1
> $ svn commit work1 -m "Created directory with 2 files."
> $ svn delete work1\dir1\file1
> $ svn commit work1 -m "Deleted dir1\file1."
> $ svn delete \work1\dir1
> $ svn commit work1 -m "Deleted dir1 and dir1\file2."
> Deleting        \work1\dir1
> svn: Commit failed (details follow):
> svn: Directory '/dir1' is out of date

This looks similar to issue 3526:
http://subversion.tigris.org/issues/show_bug.cgi?id=3526 - Commit of
newly added file followed by move (or delete) of parent dir causes
tree conflict

A couple of relevant discussions which may provide some additional insight:
- 
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=2388307
- http://svn.haxx.se/dev/archive-2010-03/0496.shtml
- http://svn.haxx.se/users/archive-2010-06/0033.shtml

I'm not sure what the current plan is for that issue. As far as I
understand, the out-of-dateness can not be avoided. It is a
consequence of the "mixed-revision working copy" system that SVN uses.

I think it would already help a lot of there would be no tree conflict
when updating (which is what issue 3526 is actually about). But I'm
not sure if someone is actively working on this.

>From one of the mail threads above, a good workaround to avoid this
issue is to always update a directory before you move or delete it
(you don't have to update the entire working copy, just the part you
are about to move/delete).

-- 
Johan

Reply via email to