[PATCH 2 of 2 STABLE] revset: handle old-style subset input by getset() function (issue4515)

Pierre-Yves David pierre-yves.david at ens-lyon.org
Fri Jan 30 15:56:02 CST 2015



On 01/30/2015 09:53 PM, Matt Mackall wrote:
> On Fri, 2015-01-30 at 20:17 +0000, Pierre-Yves David wrote:
>>
>> On 01/30/2015 08:14 PM, Matt Mackall wrote:
>>> On Fri, 2015-01-30 at 23:08 +0900, Yuya Nishihara wrote:
>>>> # HG changeset patch
>>>> # User Yuya Nishihara <yuya at tcha.org>
>>>> # Date 1422624046 -32400
>>>> #      Fri Jan 30 22:20:46 2015 +0900
>>>> # Branch stable
>>>> # Node ID 7fe084aeb4226dfe0f15a81cb36304f5194640ec
>>>> # Parent  03b6a2472e4e713f62e91549ee166c04e547adb2
>>>> revset: handle old-style subset input by getset() function (issue4515)
>>>>
>>>> Old extensions may call revset.getset() with range(len(repo)) to evaluate
>>>> the argument set.
>>>
>>> Not super-excited about this. We probably should have changed the name
>>> of getset to forcibly broken affected extensions instead... 9 months
>>> ago.
>>
>> I'm a bit reluctant to gratuitously break unsuspicious extension.
>
> Let me recap:
>
> - we changed the getset API
> - you said "not breaking extensions is nice"
> - we put in a hack to quietly make the getset function backward
> compatible
> - that hack didn't work
> - an extension broke
> - but the extension author didn't notice
> - for 9 months
> - because we tried to be nice
> - and the extension in question is **yours**
>
> In other words... we introduced unintentional invisible breakage... in
> code you maintain... for an extension you also maintain... because you
> were not keen on instead introducing intentional visible breakage for
> third-party developers.
>
> I gotta say, you're not really selling me on this one.

This is why I advertise for and explicit developer warning (as discussed 
multiple time) so that such people notice it.

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list