[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: 1.6.x and r38000

From: Hyrum K. Wright <hyrum_at_hyrumwright.org>
Date: Mon, 28 Sep 2009 09:53:51 -0400

On Sep 28, 2009, at 9:49 AM, Julian Foad wrote:

> On Fri, 2009-09-25 at 17:11 +0100, Julian Foad wrote:
>> On Tue, 2009-09-15, Julian Foad wrote:
>>> Neels J Hofmeyr wrote:
>>>> Hi Julian,
>>>>
>>>> would you be so kind and review your -1 on the r38000 group in
>>>> 1.6.x? There
>>>> are a lot of improvements, and I'd give my +1 but am reluctant to
>>>> push the
>>>> issue with only elego votes on it.
>>>>
>>>> So, even, a +1 from you would be nice, if you find you can award
>>>> one.
>>>
>>> Hi Neels. Yes, sorry, I've got it flagged and haven't done it yet.
>>> I'll
>>> at least remove my -1 as I can do so quickly but can't review the
>>> whole
>>> thing until at least the day after tomorrow.
>>
>> I've now reviewed the main parts of 1.6.x-r38000_at_HEAD and am happy.
>> Now
>> I've "just" got to review the test and repos_diff.c.
>>
>> Please put your +1 there anyway if you can, or +0 if that's how it
>> is,
>> and if Stephen can review the latest changes and +1 them we will be
>> nearly there.
>
> Right, we're nearly there. I have at last finished reviewing this, and
> I'm happy with repos_diff and the test too, and have voted for it.
>
> I fired off build-bot builds on this branch and had to merge one
> further
> small change, r38198, to correct the path separators for Windows. I
> see
> Stefan has already updated his vote. I'm re-running the build-bots
> now.
>
> Attached is a log message that I've created to describe the whole
> change
> on the branch, relative to 1.6.x. Writing and reading this log message
> helped me to understand and review the change.

Thanks for the log message. When the branch is merged to 1.6.x, I'll
include this in the merge log message.

-Hyrum

>
> - Julian
>
> ------------------------------------------------------
> http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2401224
> (This is a log message for changes on ^/branches/1.6.x-r38000_at_39646,
> compared
> with the last caught-up revision of its parent, ^/branches/
> 1.6.x_at_39641. This
> log message was written by Julian Foad from the source code diff,
> the branch
> log messages and the original trunk log messages.)
>
> Fix errors in tree conflict handling to do with node replacements.
> Issue #3486.
> Reduce the opportunities for hitting the "Attempt to add tree
> conflict that
> already exists" error.
>
> * subversion/libsvn_client/merge.c
> (make_tree_conflict): New function, factored out of tree_conflict().
> (tree_conflict): Factor out a chunk into make_tree_conflict().
> (tree_conflict_on_add): New function, like tree_conflict() but will
> combine
> an existing action=delete conflict with a new action=add conflict
> to make
> a single conflict (setting action=delete, the best we can do for
> lack of
> a "replace" action in v1.6.x). In any other case where a tree
> conflict
> already exists, leave the existing one in place and ignore the
> second one.
> (merge_file_added): Use tree_conflict_on_add() instead of
> tree_conflict() so
> an incoming file replacement results in a single tree conflict
> instead of
> an (abortive) attempt to add two tree conflicts on the same victim.
> Check for a tree conflict in more cases.
> (merge_dir_added): Use tree_conflict_on_add() instead of
> tree_conflict() so
> an incoming dir replacement results in a single tree conflict
> instead of
> an (abortive) attempt to add two tree conflicts on the same victim.
> (merge_dir_deleted): If the attempt to delete an existing directory
> fails,
> the directory has local modifications, so flag a tree conflict.
>
> * subversion/libsvn_client/repos_diff.c
> Fix duplicate notifications for a merge tree-conflict with an
> incoming
> replace. Rearrange the notification code for clarity.
> (add_directory, close_file): In each function, ensure only one
> notification
> is sent. Previously, if an earlier incoming deletion on this path
> had
> raised a tree conflict, then this code sent one notification for
> the tree
> conflict and another for the result of the present action. (The
> file-
> replaced-with-file case was visible on the trunk in merge_tests.py
> merge_replace_causes_tree_conflict2 on file A/mu during the final
> merge: there was an additional "A" notification for A/mu.) Don't
> bother
> setting NOTIFY's LOCK_STATE in case of a tree-conflict
> notification.
> (close_directory): Don't notify on paths already notified by
> add_directory().
>
> * subversion/libsvn_wc/update_editor.c
> (schedule_existing_item_for_re_add): Add an option to leave the
> item's
> copy-from info alone, in order to handle a node that was
> scheduled for
> replacement rather than modified.
> (do_entry_deletion): If we raise a tree conflict because the node
> is locally
> replaced, re-schedule the node for addition (with or without
> history)
> rather than trying to delete it.
>
> * subversion/tests/cmdline/merge_tests.py
> (delete_file_and_dir): On an incoming delete of a directory with
> local mods,
> expect a tree conflict instead of a skip.
> (merge_replace_causes_tree_conflict): New test.
> (test_list): Add the new test.

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=2401226
Received on 2009-09-28 15:54:10 CEST

This is an archived mail posted to the Subversion Dev mailing list.