# HG changeset patch # User Jason R. Coombs # Date 2022-08-22 20:59:14 # Node ID 53229e170496fb5ddf58d48ec2dc537a2f5fe3ac # Parent cdfba684b6a11fb4875e2a054d22e70394e9449d phase-shelve: correct unicode string to honor 'shelve.store=internal' In the case of strip-based shelves, there should be no hidden commit found. That's because shelve.store=internal is necessary but not sufficient to enable phase-based shelves; internal-phase must also be set. diff --git a/mercurial/configitems.py b/mercurial/configitems.py --- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -1454,7 +1454,7 @@ coreconfigitem( coreconfigitem( b'shelve', b'store', - default='internal', + default=b'internal', experimental=True, ) coreconfigitem( diff --git a/mercurial/shelve.py b/mercurial/shelve.py --- a/mercurial/shelve.py +++ b/mercurial/shelve.py @@ -102,7 +102,7 @@ class ShelfDir: def _use_internal_phase(repo): return ( phases.supportinternal(repo) - and repo.ui.config(b'shelve', b'store') == 'internal' + and repo.ui.config(b'shelve', b'store') == b'internal' ) diff --git a/tests/test-shelve.t b/tests/test-shelve.t --- a/tests/test-shelve.t +++ b/tests/test-shelve.t @@ -1605,3 +1605,16 @@ shelve --list --patch should work even w default.patch default.shelve $ hg unshelve -q + +Override the disabling, re-enabling phase-based shelves + + $ hg shelve --config shelve.store=internal -q + +#if phasebased + $ hg log --hidden --template '{user}\n' + shelve@localhost +#endif + +#if stripbased + $ hg log --hidden --template '{user}\n' +#endif