Quoting Neels J Hofmeyr <neels_at_elego.de>:
> Neels J. Hofmeyr wrote:
>>
>> Stephen Butler wrote:
> [...]
>>>> The check_tree_conflict() vs. svn_wc_conflicted_p() discussion made me
>>>> think: In the tests, I guess we should also try to run the same operation
>>>> that causes the conflicts again, to check that the persisting conflicts
>>>> aren't re-raised or missed altogether. Is this accounted for yet?
>>> No, currently we test only fresh tree conflicts. Good point.
>>
>> I'll try that now if you haven't already.
>
> No, actually, got caught up in more pressing matters, as you can see in the
> commit log of r33891.
Hello tree-conflict fans,
Neels, I believe the changes in r33891 are actually a part of checking that
persistent tree conflicts "aren't re-raised or missed altogether." But I
think we should solve that problem in one go rather than piecemeal.
Otherwise we'll waste a lot of time massaging test expectations from one
intermediate (bad) state to another.
Attached is a diff to the tree-conflicts-notify branch, just some hacking
I've done today to try to skip changes to the working copy in the presence
of existing tree conflicts. BTW I cribbed a few good things from Julian's
skip-inside-conflicts-3.patch from a couple days ago.
But I think we should tidy up and merge-to-trunk the pre-r33891 state of
our branch, because we've accomplished our first goal: per-victim tree
conflict notification in update/switch output. Skipping conflicted trees,
handling merge output, UI improvements (e.g. 'CDM'), etc. can be done in
future patches to trunk or in short-term branches as needed.
What do you (all) think?
Steve
Draft commit message for attached patch:
On the tree-conflicts-notify branch: Try to skip tree-conflicted
items. So far, I have edited the dir callbacks only. The file
callbacks, test expectations, etc. remain. Oh, and testing to see
if it works at all.
[[[
* subversion/libsvn_wc/update_editor.c
(edit_baton): New boolean field inside_a_tree_conflict.
(maybe_bump_dir_info): Don't call complete_directory() if inside a
tree conflict.
(check_tree_conflict): Rename to ...
(maybe_raise_tree_conflict): ... and add a todo comment.
(tree_has_local_mods,
add_file,
open_file): Track rename of check_tree_conflict().
(do_entry_deletion,
add_directory,
open_directory,
close_directory): Track rename of check_tree_conflict(). Skip
almost everything if inside a tree conflict. Otherwise, if the dir
has an existing or freshly-raised tree conflict, notify the user
and skip almost everything else. Otherwise proceed normally.
(change_dir_prop): Skip everything if inside a tree conflict.
]]]
Stephen Butler | Software Developer
elego Software Solutions GmbH
Gustav-Meyer-Allee 25 | 13355 Berlin | Germany
fon: +49 30 2345 8696 | mobile: +49 163 25 45 015
fax: +49 30 2345 8695 | http://www.elegosoft.com
Geschäftsführer: Olaf Wagner | Sitz der Gesellschaft: Berlin
Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-10-26 17:41:45 CET