Mercurial > hg-stable
changeset 46239:d159d0fafa78
sharesafe: introduce config to disallow outdated shares if upgrade fails
After this patch, we have config option to control all aspects of shares
when share source is upgraded or downgraded.
Differential Revision: https://phab.mercurial-scm.org/D9692
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Fri, 08 Jan 2021 21:47:31 +0530 |
parents | 9796cf108e4e |
children | a42502e9ae6d |
files | mercurial/configitems.py mercurial/upgrade.py tests/test-share-safe.t |
diffstat | 3 files changed, 15 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/configitems.py Fri Jan 08 21:34:16 2021 +0530 +++ b/mercurial/configitems.py Fri Jan 08 21:47:31 2021 +0530 @@ -1084,6 +1084,11 @@ ) coreconfigitem( b'experimental', + b'sharesafe-auto-upgrade-fail-error', + default=False, +) +coreconfigitem( + b'experimental', b'sharesafe-warn-outdated-shares', default=True, )
--- a/mercurial/upgrade.py Fri Jan 08 21:34:16 2021 +0530 +++ b/mercurial/upgrade.py Fri Jan 08 21:47:31 2021 +0530 @@ -257,7 +257,12 @@ current_requirements.add(requirementsmod.SHARESAFE_REQUIREMENT) ui.warn(_(b'repository upgraded to use share-safe mode\n')) except error.LockError as e: - if ui.configbool(b'experimental', b'sharesafe-warn-outdated-shares'): + if ui.configbool(b'experimental', b'sharesafe-auto-upgrade-fail-error'): + raise error.Abort( + _(b'failed to upgrade share, got error: %s') + % stringutil.forcebytestr(e.strerror) + ) + elif ui.configbool(b'experimental', b'sharesafe-warn-outdated-shares'): ui.warn( _(b'failed to upgrade share, got error: %s\n') % stringutil.forcebytestr(e.strerror)
--- a/tests/test-share-safe.t Fri Jan 08 21:34:16 2021 +0530 +++ b/tests/test-share-safe.t Fri Jan 08 21:47:31 2021 +0530 @@ -557,6 +557,10 @@ o f3ba8b99bb6f897c87bbc1c07b75c6ddf43a4f77: added foo + $ hg log -GT "{node}: {desc}\n" -R ../nss-share --config experimental.sharesafe-auto-upgrade-shares=true --config experimental.sharesafe-auto-upgrade-fail-error=true + abort: failed to upgrade share, got error: Lock held + [255] + $ rm ../nss-share/.hg/wlock $ hg log -GT "{node}: {desc}\n" -R ../nss-share --config experimental.sharesafe-auto-upgrade-shares=true repository upgraded to use share-safe mode