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

Re: Issue #3209: merge into missing

From: Stefan Sperling <stsp_at_elego.de>
Date: Tue, 17 Feb 2009 07:09:38 +0000

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?

Stefan
Received on 2009-02-17 08:09:58 CET

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