[svnmerge] Bidirectional merging
Raman Gupta
rocketraman at fastmail.fm
Mon Aug 22 11:26:08 PDT 2005
Dale Worley wrote:
>> From: Raman Gupta
>>
>> So you are OK with spurious conflicts? It is obvious that all
>> merges may require intelligent intervention, but that intervention
>> should be limited as much as possible to "real" conflicts. Not
>> conflicts that are present simply because the tool being used does
>> not support merging changes on changes.
>
> Well, by definition spurious conflicts are not a good thing. But it
> seems to me that the tool should err on the side of referring *too
> many* things to the user than *too few*.
This makes sense and I agree.
> The correct solution would be to have "svn merge" be able to detect
> the case of "changes on changes" and resolve it correctly. --
> Actually, that is part of the problem we're seeing, "svn merge" flags
> as conflicts a considerable number of situations that it really
> should be able to resolve automatically.
>
>> 1) I think you're trying to argue that because the solution does
>> not solve 100% of the possible merge scenarios, that it is not a
>> good solution.
>
> I'm particularly worried about solutions that might cause a change to
> be overlooked for merging, much more than I'm concerned about svn
> detecting a conflict when it need not have.
Ok.
>> 2) Even in situations where those "tweaks" are common, your
>> procedures can change in simple ways to avoid this issue:
>>
>> a) you can commit the merge first, and then apply the tweaks so
>> that the tweaks will be available to merge back to the branch
>> later. This solution of course doesn't apply to conflicts that need
>> to be resolved before the commit, but if you've got major conflicts
>> between bi-directional branches then you've probably got bigger
>> problems and need to re-synchronize the branches manually.
>
> We've seen a relatively large fraction of merges that contain
> conflicts (which of necessity can't be checked in) or which cannot be
> built (which should not be checked in), so I'm not convinced that
> this method can be made to work. (Despite that it's clear that it is
> the theoretically Right Thing to do.)
I'm glad we agree its the Theoretical Right Thing :-) Though I
understand your point about missing possible changes, I'm still not
convinced that it is not workable. In your description above, are you
talking about bi-directional merges? If so, I'd like to understand your
workflow, because right now I'm not seeing how *regular* merges between
bi-directional branches would result in so many conflicts/non-building
code. Don't your branches diverge to the point where the bi-directional
merging is unworkable?
Cheers,
Raman
More information about the Svnmerge
mailing list