Daniel Shahaf wrote:
> Julian Foad wrote:
> > If we warn [...] it also has Bad properties: 
> > supporting misleading assumptions about how other variations of the 
> > scenario might behave.
> 
> Could you be more concrete about those assumptions?

It's not the warning itself but that continuing to behave illogically would 
support bad assumptions.  One example: if the user is accustomed to the 
foreign-repo merge behaviour (despite same UUIDs) using a script that says (x = 
repository root URL path)
  source1=http://x source2=https://x target=https://x
then they might assume that "correcting" source1 in their script to say
  source1=https://x source2=https://x target=https://x
would keep the same behaviour; but it doesn't.

Of course a warning could try to explain sufficiently but the current behaviour 
is not self-consistent enough to explain in one short sentence.

> The negatives that would be waiting in a hypothetical release that
> issues warnings as proposed aren't that bad, and certainly not as bad
> as those in the current release, are they?

Not as bad as the current release, of course.

> [...] we can phrase the
> warning clearly enough that anyone who runs into it unintentionally will
> abort the merge and re-do it "correctly", without us needing to enforce
> it by issueing a fatal error.
[...]
> I don't disagree with classifying this as a bug, but I still don't
> understand why issueing a warning wouldn't be satisfactory — or, at
> least, have 1.15 issue a warning and 1.16 upgrade that to a fatal error,
> just to be on the safe side.  See the example output above, line 4.

That's a good strategy for dealing with cases in general where a behaviour one 
"supported" in practice needs to be withdrawn.  If this were an issue in a more 
main-stream merge case, I would agree.  However, the proposed benefit that we 
offer by continuing the merge is targetting the wrong group: it is a supposed 
convenience to users whose UUIDs are misconfigured, while it would be a 
hindrance to users who run into it by accident while having their UUIDs 
correctly configured.  Also, this is so much an edge case that it isn't worth 
the extra complexity on our side; we don't have a great track record of getting 
around to doing things that we scheduled for a later release, for instance.  
Handling it so gently for the affected users is a nicety that doesn't feel 
worth it.  I think the reasonable use cases for the case in question and the 
likely number of occurrences in practice are both near zero.  I don't have 
numbers to back up this feeling, but as far as I am aware nobody has reported 
this issue and it has existed for many years.

> By the way, I don't feel strongly about this matter; it simply happens
> to be the one place in the write-up of the issue where I couldn't see
> why an alternative design was ruled out.

Ack, and thanks for picking up on this omission.  Does that all stack up now?

-- 
- Julian

Reply via email to