On Fri, Oct 1, 2010 at 7:25 AM, Julian Foad <julian.foad_at_wandisco.com> wrote:
> Stefan Sperling wrote:
>> I'd like to propose that we disallow merges into mixed-revision working
>> copies by default for 1.7, and only allow such merges if a special command
>> line option has been passed.
What will the behavior be during --dry-run merges?
A) No change
B) Warn that your target is mixed-rev, but proceed as we always did
C) Fail unless the new option is used.
What about --record-only merges? I think here it makes sense to
mirror whatever behavior we decide upon for a "real" merge-tracking
aware merge.
>> The reason for this is that merges into mixed-rev WCs can easily create
>> conflicts which are tedious to resolve. Even if you know about the problem
>> and try to run "svn update" before every merge, it's quite easy to forget
>> about running "svn update".
>>
>> Also, we've been advertising this as best practice for some time.
>> Quoting the book on the matter:
>> Never merge into working copies with a mixture of working revision
>> numbers, or with “switched” subdirectories (as described next in the
>> section called “Traversing Branches”). A merge target should be a
>> working copy which represents a single location in the repository at a
>> single point in time.
>>
>> Note that while the book recommends not to merge into working copies
>> with switched subtrees, I don't intend to enforce this by default.
>>
>> I've talked about this with Paul on IRC and he had no objections.
>> See http://colabti.org/irclogger/irclogger_log/svn-dev?date=2010-09-30#l468
>> for the full discussion.
>>
>> Below is a work-in-progress diff that starts making this change.
>> Tests fail with it. I've only checked the merge tests for now.
>>
>> Before continuing with this, fixing up tests, bumping APIs, and eventually
>> adding the command line option that allows merges into mixed-rev WCs,
>> I'd like to ask whether anyone has concerns about this idea.
>
> The proposal sounds good to me.
>
> To be more specific about what the proposal is:
>
> * It does not apply to re-integrate merges. (They always enforce this
> anyway?)
Right, there should be *no* override on reintegrate's requirement for
a uniform rev target.
> * It applies to merge-tracking merges.
>
> * It [applies/does not appy] to non-merge-tracking merges?
Stefan and I didn't discuss these last two. I'm inclined to think that
this warning should apply only to merge-tracking aware merges.
> As for the tests: I think it would be best to keep some or all of the
> tests doing merges into a mixed-rev WC as they do now, partly so as not
> to lose test coverage of this condition, but more importantly to
> preserve the purpose of any regression tests that happen to be testing
> for bugs which only showed up in mixed-rev mode.
>
> In other words, fix most of them by adding the bypass flag rather than
> by adding an "svn update" command.
Good point, that makes more sense.
Paul
Received on 2010-10-01 15:17:22 CEST