[PATCH 6 of 6] check-concurrency: expose the feature as 'server.check-concurrency'

Augie Fackler raf at durin42.com
Fri Jun 9 10:02:10 EDT 2017


On Jun 9, 2017 09:29, "Pierre-Yves David" <pierre-yves.david at ens-lyon.org>
wrote:



On 06/08/2017 04:58 PM, Yuya Nishihara wrote:

> On Wed, 7 Jun 2017 14:52:18 -0400, Augie Fackler wrote:
>
>> On Jun 7, 2017, at 10:29, Yuya Nishihara <yuya at tcha.org> wrote:
>>> On Sun, 04 Jun 2017 15:49:34 +0100, Pierre-Yves David wrote:
>>>
>>>> # HG changeset patch
>>>> # User Pierre-Yves David <pierre-yves.david at octobus.net>
>>>> # Date 1495923158 -7200
>>>> #      Sun May 28 00:12:38 2017 +0200
>>>> # Node ID c58a31911d96c8fbb083388e55bf22cc473cc7b5
>>>> # Parent  ae88951457de93c7f6286d449672b0b9d20c57f1
>>>> # EXP-Topic pushrace
>>>> # Available At https://www.mercurial-scm.org/
>>>> repo/users/marmoute/mercurial/
>>>> #              hg pull https://www.mercurial-scm.org/
>>>> repo/users/marmoute/mercurial/ -r c58a31911d96
>>>> check-concurrency: expose the feature as 'server.check-concurrency'
>>>>
>>>
>>> --- a/mercurial/help/config.txt
>>>> +++ b/mercurial/help/config.txt
>>>> @@ -1668,6 +1668,16 @@ Controls generic server settings.
>>>>     are highly recommended. Partial clones will still be allowed.
>>>>     (default: False)
>>>>
>>>> +``check-concurrency``
>>>> +    Level of allowed race condition between two pushing client.
>>>> +    - 'strict': push is abort if another client touched the repository
>>>> +      while the push was preparing. (default)
>>>> +    - 'related': push is only aborted if it affects head that got also
>>>> +      affected while the push was preparing.
>>>> +
>>>> +    This requires compatible client (version 4.3 and later). Old
>>>> client will
>>>> +    use 'strict'.
>>>>
>>>
>>> I feel "race" is better than "concurrency" since I think "concurrency"
>>> doesn't
>>> have any negative meaning. But obviously I'm not the right person to
>>> review
>>> this patch. :)
>>>
>>
>> This is tricky. race condition implies to my brain that it's always bad,
>> which isn't necessarily the right feeling here.
>>
>
> Maybe I take the current level as check-race=paranoid.
>

To me, paranoid also has negative connotation, while the current mode is
perfectly fine and even needed if people do extra checking logic during
push.


I might call it concurrent-push-mode or something (since it's only for
>> pushes, and it's not strictly races either I guess)?
>>
>
"concurrent-push-mode" is not bad. What about the value?

concurrent-push-mode=strict  # current behavior, refuse any concurrency
concurrent-push-mode= unrelated  # allow push on unrelated heads


These seem good to me.



-- 
Pierre-Yves David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20170609/fb0a84b2/attachment.html>


More information about the Mercurial-devel mailing list