Stefan Sperling <stsp_at_elego.de> writes:
> In 1.7, you get a tree conflict if a directory obstructs an addition
> of another directory during update:
> $ svn up
> Updating '.' ...
> C foo
> At revision 3.
> Summary of conflicts:
> Tree conflicts: 1
> $ svn st
> ? C foo
> > local unversioned, incoming add upon update
> Summary of conflicts:
> Tree conflicts: 1
>
> IIRC we once decided that obstructions should not cause tree conflicts.
> Only versioned item should cause tree conflicts, and obstructions should
> be skipped. Apparently, this decision has not been enforced consistently
> throughout the code since we still have an "unversioned" tree conflict reason.
>
> 1.6 behaved as follows:
> $ svn up
> subversion/libsvn_wc/update_editor.c:2335: (apr_err=155000)
> svn: Failed to add directory 'foo': an unversioned directory of the same name already exists
>
> I like the current 1.7 behaviour better than the 1.6 behaviour because the
> update isn't instantly aborted when an obstructing directory is found.
> But maybe 1.7 should skip adding the directory instead of flagging a
> conflict?
What do you mean by skipping the add? Not adding the base node?
We could have made 1.6 add an admin directory to an unversioned
directory, but other for other sorts of obstructions: files, copied
directories, this was not possible. 1.7 doesn't have this problem,
update can always produce a complete base node tree whatever the state
of the working copy. I think that is the sensible way for 1.7 to
behave, it's much easier to understand the state of the working copy and
tree conflict resolution should be more easier.
--
Philip
Received on 2010-12-12 11:30:51 CET