On Mon, Feb 16, 2009 at 05:05:27PM +0100, Stephen Butler wrote:
> Quoting Stephen Butler <sbutler_at_elego.de>:
>> The status of 1.6-blocker #3209 (see r35877):
> The good news: this isn't really a blocker. The current inconsistency
> in tree conflict detection is a bug, but the working copy is left in
> a usable state.
> The bad news: the bug might not be fixable in the current design of
> the client.
> Background: the merge code runs in a second set of callbacks (in
> libsvn_wc/repos_diff.c) on top of the usual delta editor callbacks.
> The current state: within a repos_diff callback, we can't tell
> whether a nonexistent dir is really nonexistent, or just missing.
> The former is a tree conflict, the latter should not be a TC.
> The repos_diff callbacks do a great job of filtering out the info
> we really need for tree conflict detection! :-\ But that's been
> discussed at length last year. In r33989, Neels & co. added a
> tree_conflicted boolean arg to all the relevant callbacks, so that
> all of the tree conflict detection can be done in
> libsvn_client/merge.c, where it's easy to follow. This lets us
> avoid raising a tree conflict inside a TC victim tree, but it's
> not enough to tell whether an item is really nonexistent or is
> just missing.
Would passing an enum instead of a boolean help here?
Is this related to the problem of needing to "reimplement diff"
in order to handle use case 5 for directories properly?
Received on 2009-02-17 08:09:58 CET