On 21 April 2016 at 17:34, Stefan Sperling <s...@apache.org> wrote: > On Thu, Apr 21, 2016 at 02:04:08PM -0000, s...@apache.org wrote: >> Author: stsp >> Date: Thu Apr 21 14:04:08 2016 >> New Revision: 1740320 >> >> URL: http://svn.apache.org/viewvc?rev=1740320&view=rev >> Log: >> Add a conflict resolution option for dir/dir "incoming add vs local >> obstruction upon merge". This option merges the two directories. >> >> Again, the implementation is not atomic, yet. >> And it doesn't always work as expected. >> Add two XFAIL regression tests which illustrate known problems. > > I'll need some help here to decide how to proceed. > > Briefly, the problems I'm running into are: > > - It is not possible to merge an "only-adds" delta from rN-1 to rN for > a path created in rN. Essentially, this is the same issue as we had > for 'svn diff -cN' for a node created in rN, which was fixed at some point. > So this is a case where svn diff -cN works, but svn merge -cN doesn't. > I now need svn merge -cN to work in this case (see the 1st of 3 tests > added in this commit). > > - I'm not sure to what extent the resolver should be responsible for > mergeinfo. Should it assume that existing mergeinfo in a working copy > remains valid when further merges are performed to resolve a tree > conflict? I guess not. In the case I'm looking at, the merge only > produces a delta if run with --no-ancestry (why?) which disables > mergeinfo recording. It is possible to construct cases where the lack > of additional mergeinfo recording seems wrong (see the 3rd of 3 tests > added in this commit). > > Does anyone have suggestions about these problems? > > Should the resolver be using the standard merge code at all in this case? > Perhaps that's the wrong approach? > > Implementation aside, I do think the option to merge the two directories > makes sense, even if they are ancestrally unrelated. May there are some implementation problems, but I think merging two directories makes sense: it's real world case during some refactoring.
-- Ivan Zhakov