On Tue, Jan 14, 2014 at 11:00:12PM +0100, Stefan Fuhrmann wrote:
> Hi all,
> 
> We do have a "usage race" in SVN that I will commit
> a fix to in a few minutes. This is mainly to document
> the problem and maybe get feedback in case I over-
> looked something.
> 
> Situation:
> 
> * We track merges in properties at the top-level dir
>   (usually the branch / trunk root). To commit a merge,
>   the user must update to HEAD and then commit.
>   TXNs based on older revs will be rejected by
>   lib_repos/commit.c: change_dir_prop().
> * Transmitting the merge result may take minutes in
>   the case of a large merge (many files, large artwork
>   etc.).
> * The commit will still fail if there has been another
>   commit on the merge target while merge commit
>   was transmitted.
> 
> Problem:
> 
> As a result, the average time between commits to the
> target branch limits the size of data you may merge
> (and successfully commit).
> 
> Solution:
> 
> We can't do much about the first and second points
> in the list above but wc updates after small commits
> should be much faster. i.e. much less of a limitation.
> 
> The conflict handling in our commit code will be
> extended such that simple bubble-up directory changes
> merge cleanly with property changes on that directory.
> We verify that the entries in the target directory are
> still the same as in the txn base modulo some version
> bumps. That way, the working copy will look like the
> directory being up-to-date and some of the sub-dirs
> being updated to an older revision.
> 
> -- Stefan^2.

I'm not sure I fully understand what you are proposing to do.

But whatever you do, please don't auto-merge deletions of already
deleted items. Doing so prevents some tree conflicts from being detected,
because it hides situations where an update would result in a 'delete vs.
delete' conflict. (I believe Subversion <= 1.4 used to allow this.)

Similarly, I don't think we want to auto-merge if a directory is locally
deleted and a newer version has property changes in the repository.
Rather, we want the delete vs property change to conflict in the wc.

Reply via email to