[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Consistency between 'update' and 'switch' APIs

From: Branko Čibej <brane_at_wandisco.com>
Date: Wed, 13 Mar 2013 17:37:33 +0100

On 13.03.2013 17:29, Julian Foad wrote:
> I (Julian Foad) wrote:
>
> [...]
>> PROPOSAL
>>
>> - svn_ra_do_update2(): revise to svn_ra_do_update3(), add the
>> 'ignore_ancestry' option there too, and use two pools while we're at
>>
>> it. Track this change in the RA vtable 'update' method, protocols, etc.
>>
>> - svn_wc__get_switch_editor(): add 'adds_as_modification'.
>>
>> - svn_client__update_internal(), svn_client_update4(): add
>> 'ignore_ancestry'.
>>
>> - svn_client__switch_internal(), svn_client_switch4(): add
>> 'adds_as_modification'.
>>
>>
>> RATIONALE
>>
>> Do I really have to explain why Consistency is Good?
> Consistency alone doesn't require us to add the options where missing; we could also remove them where present. These options exist because we decided at some point that we wanted them, and I think we still want them and we definitely still need them for backward compatibility.

Actually, if we're revving an API, it's just as valid to /remove/
options as it is to add them. IMO.
The backwards-compat behaviour can be encapsulated in the implementation.

So, for example, we could go ahead and remove the ignore-ancestry option
from switch.

-- Brane

-- 
Branko Čibej
Director of Subversion | WANdisco | www.wandisco.com
Received on 2013-03-13 17:38:20 CET

This is an archived mail posted to the Subversion Dev mailing list.