diff --git a/mercurial/helptext/config.txt b/mercurial/helptext/config.txt --- a/mercurial/helptext/config.txt +++ b/mercurial/helptext/config.txt @@ -1032,6 +1032,8 @@ Example ``.hg/hgrc``:: incoming.autobuild:run-with-plain = yes # HGPLAIN never set incoming.autobuild:run-with-plain = no + # HGPLAIN inherited from environment (default before Mercurila 5.7) + incoming.autobuild:run-with-plain = auto Most hooks are run with environment variables set that give useful additional information. For each hook below, the environment variables diff --git a/mercurial/hook.py b/mercurial/hook.py --- a/mercurial/hook.py +++ b/mercurial/hook.py @@ -158,7 +158,10 @@ def _exthook(ui, repo, htype, name, cmd, env[b'HG_HOOKTYPE'] = htype env[b'HG_HOOKNAME'] = name - plain = ui.configbool(b'hooks', b'%s:run-with-plain' % name) + if ui.config(b'hooks', b'%s:run-with-plain' % name) == b'auto': + plain = ui.plain() + else: + plain = ui.configbool(b'hooks', b'%s:run-with-plain' % name) if plain: env[b'HGPLAIN'] = b'1' else: diff --git a/tests/test-hook.t b/tests/test-hook.t --- a/tests/test-hook.t +++ b/tests/test-hook.t @@ -1412,16 +1412,20 @@ HGPLAIN setting in hooks > pre-version.testing-yes:run-with-plain=yes > pre-version.testing-no=echo '### no ########' plain: \${HGPLAIN:-''} > pre-version.testing-no:run-with-plain=no + > pre-version.testing-auto=echo '### auto ######' plain: \${HGPLAIN:-''} + > pre-version.testing-auto:run-with-plain=auto > EOF $ (unset HGPLAIN; hg version --quiet) ### default ### plain: 1 ### yes ####### plain: 1 ### no ######## plain: + ### auto ###### plain: Mercurial Distributed SCM (*) (glob) $ HGPLAIN=1 hg version --quiet ### default ### plain: 1 ### yes ####### plain: 1 ### no ######## plain: + ### auto ###### plain: 1 Mercurial Distributed SCM (*) (glob)