# HG changeset patch # User Pierre-Yves David # Date 2022-06-14 17:40:35 # Node ID 4f04bb0d8debc58a848a07dcbd1abf775ed252fa # Parent 67b210bb5ce289749e4ca25dd971b190fd93d931 auto-upgrade: add an option to silence the safe-mismatch message For well tested case, the message can get in the way, so we add a way to disable it. diff --git a/mercurial/configitems.py b/mercurial/configitems.py --- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -2170,6 +2170,16 @@ coreconfigitem( default=True, ) coreconfigitem( + b'share', + b'safe-mismatch.source-not-safe:verbose-upgrade', + default=True, +) +coreconfigitem( + b'share', + b'safe-mismatch.source-safe:verbose-upgrade', + default=True, +) +coreconfigitem( b'shelve', b'maxbackups', default=10, diff --git a/mercurial/helptext/config.txt b/mercurial/helptext/config.txt --- a/mercurial/helptext/config.txt +++ b/mercurial/helptext/config.txt @@ -2179,6 +2179,9 @@ Alias definitions for revsets. See :hg:` Check :hg:`help config.format.use-share-safe` for details about the share-safe feature. +``safe-mismatch.source-safe:verbose-upgrade`` + Display a message when upgrading, (default: True) + ``safe-mismatch.source-safe.warn`` Shows a warning on operations if the shared repository does not use share-safe, but the source repository does. @@ -2204,6 +2207,9 @@ Alias definitions for revsets. See :hg:` Check :hg:`help config.format.use-share-safe` for details about the share-safe feature. +``safe-mismatch.source-not-safe:verbose-upgrade`` + Display a message when upgrading, (default: True) + ``safe-mismatch.source-not-safe.warn`` Shows a warning on operations if the shared repository uses share-safe, but the source repository does not. diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -628,6 +628,9 @@ def makelocalrepository(baseui, path, in mismatch_config = ui.config( b'share', b'safe-mismatch.source-not-safe' ) + mismatch_verbose_upgrade = ui.configbool( + b'share', b'safe-mismatch.source-not-safe:verbose-upgrade' + ) if mismatch_config in ( b'downgrade-allow', b'allow', @@ -643,6 +646,7 @@ def makelocalrepository(baseui, path, in requirements, mismatch_config, mismatch_warn, + mismatch_verbose_upgrade, ) elif mismatch_config == b'abort': raise error.Abort( @@ -668,6 +672,9 @@ def makelocalrepository(baseui, path, in mismatch_warn = ui.configbool( b'share', b'safe-mismatch.source-safe.warn' ) + mismatch_verbose_upgrade = ui.configbool( + b'share', b'safe-mismatch.source-safe:verbose-upgrade' + ) if mismatch_config in ( b'upgrade-allow', b'allow', @@ -683,6 +690,7 @@ def makelocalrepository(baseui, path, in requirements, mismatch_config, mismatch_warn, + mismatch_verbose_upgrade, ) elif mismatch_config == b'abort': raise error.Abort( diff --git a/mercurial/upgrade.py b/mercurial/upgrade.py --- a/mercurial/upgrade.py +++ b/mercurial/upgrade.py @@ -305,6 +305,7 @@ def upgrade_share_to_safe( current_requirements, mismatch_config, mismatch_warn, + mismatch_verbose_upgrade, ): """Upgrades a share to use share-safe mechanism""" wlock = None @@ -337,7 +338,8 @@ def upgrade_share_to_safe( diffrequires.add(requirementsmod.SHARESAFE_REQUIREMENT) current_requirements.add(requirementsmod.SHARESAFE_REQUIREMENT) scmutil.writerequires(hgvfs, diffrequires) - ui.warn(_(b'repository upgraded to use share-safe mode\n')) + if mismatch_verbose_upgrade: + ui.warn(_(b'repository upgraded to use share-safe mode\n')) except error.LockError as e: hint = _( b"see `hg help config.format.use-share-safe` for more information" @@ -366,6 +368,7 @@ def downgrade_share_to_non_safe( current_requirements, mismatch_config, mismatch_warn, + mismatch_verbose_upgrade, ): """Downgrades a share which use share-safe to not use it""" wlock = None @@ -394,7 +397,8 @@ def downgrade_share_to_non_safe( current_requirements |= source_requirements current_requirements -= set(requirementsmod.SHARESAFE_REQUIREMENT) scmutil.writerequires(hgvfs, current_requirements) - ui.warn(_(b'repository downgraded to not use share-safe mode\n')) + if mismatch_verbose_upgrade: + ui.warn(_(b'repository downgraded to not use share-safe mode\n')) except error.LockError as e: hint = _( b"see `hg help config.format.use-share-safe` for more information" diff --git a/tests/test-share-safe.t b/tests/test-share-safe.t --- a/tests/test-share-safe.t +++ b/tests/test-share-safe.t @@ -521,12 +521,21 @@ Testing automatic downgrade of shares wh [255] $ rm ../ss-share/.hg/wlock + $ cp -R ../ss-share ../ss-share-bck $ hg log -GT "{node}: {desc}\n" -R ../ss-share --config share.safe-mismatch.source-not-safe=downgrade-abort repository downgraded to not use share-safe mode @ f63db81e6dde1d9c78814167f77fb1fb49283f4f: added bar | o f3ba8b99bb6f897c87bbc1c07b75c6ddf43a4f77: added foo + $ rm -rf ../ss-share + $ mv ../ss-share-bck ../ss-share + + $ hg log -GT "{node}: {desc}\n" -R ../ss-share --config share.safe-mismatch.source-not-safe=downgrade-abort --config share.safe-mismatch.source-not-safe:verbose-upgrade=no + @ f63db81e6dde1d9c78814167f77fb1fb49283f4f: added bar + | + o f3ba8b99bb6f897c87bbc1c07b75c6ddf43a4f77: added foo + $ hg log -GT "{node}: {desc}\n" -R ../ss-share @ f63db81e6dde1d9c78814167f77fb1fb49283f4f: added bar @@ -588,12 +597,20 @@ Check that if lock is taken, upgrade fai [255] $ rm ../nss-share/.hg/wlock + $ cp -R ../nss-share ../nss-share-bck $ hg log -GT "{node}: {desc}\n" -R ../nss-share --config share.safe-mismatch.source-safe=upgrade-abort repository upgraded to use share-safe mode @ f63db81e6dde1d9c78814167f77fb1fb49283f4f: added bar | o f3ba8b99bb6f897c87bbc1c07b75c6ddf43a4f77: added foo + $ rm -rf ../nss-share + $ mv ../nss-share-bck ../nss-share + $ hg log -GT "{node}: {desc}\n" -R ../nss-share --config share.safe-mismatch.source-safe=upgrade-abort --config share.safe-mismatch.source-safe:verbose-upgrade=no + @ f63db81e6dde1d9c78814167f77fb1fb49283f4f: added bar + | + o f3ba8b99bb6f897c87bbc1c07b75c6ddf43a4f77: added foo + Test that unshare works