Skip to content
Snippets Groups Projects
Commit a7851519ea02 authored by Pierre-Yves David's avatar Pierre-Yves David :octopus:
Browse files

check-concurrency: expose the feature as 'concurrent-push-mode'

We move the feature to a proper configuration and document it. The config goes
in the 'server' section because it feels like something the server owner would
want to decide. We pick and open field because it seems likely that other
checking levels will emerge in the future. (eg: server like the mozilla-try
server will likely wants a "none" value)

The option name contains 'push' since this affects 'push' only. The option value
'check-related' is preferred over one explicitly containing 'allow' or 'deny'
because the client still have a strong decision power here. Here, the server is
just advising the client on the check mode to use.
parent 7e2eb964a561
No related branches found
No related tags found
No related merge requests found
......@@ -1323,7 +1323,8 @@
caps['obsmarkers'] = supportedformat
if allowpushback:
caps['pushback'] = ()
if not repo.ui.configbool('experimental', 'checkheads-strict', True):
cpmode = repo.ui.config('server', 'concurrent-push-mode', 'strict')
if cpmode == 'check-related':
caps['checkheads'] = ('related',)
return caps
......
......@@ -1694,6 +1694,17 @@
are highly recommended. Partial clones will still be allowed.
(default: False)
``concurrent-push-mode``
Level of allowed race condition between two pushing clients.
- 'strict': push is abort if another client touched the repository
while the push was preparing. (default)
- 'check-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'.
``validate``
Whether to validate the completeness of pushed changesets by
checking that all new file revisions specified in manifests are
......
......@@ -111,8 +111,8 @@
#if unrelated
$ cat >> $HGRCPATH << EOF
> [experimental]
> checkheads-strict = no
> [server]
> concurrent-push-mode = check-related
> EOF
#endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment