# HG changeset patch # User Matt Harbison # Date 1724208431 14400 # Node ID adbfbbf9963fc243bbd27249bd72855e5c55bcbb # Parent a1a94d488e14f8fce154ca9d3bdf337361e175b2 shelve: consistently convert exception to bytes via `stringutil.forcebytestr` The other two places in this module use this, and past experience shows that this method does a nicer job. I'm not sure why we're converting to bytes here- `KeyError` is built-in and will have str attrs, and `RepoLookupError` is a subclass of the built-in `Exception` class (not `errors.Error`, which is allegedly the baseclass for all Mercurial exceptions). diff -r a1a94d488e14 -r adbfbbf9963f mercurial/shelve.py --- a/mercurial/shelve.py Tue Aug 20 22:34:51 2024 -0400 +++ b/mercurial/shelve.py Tue Aug 20 22:47:11 2024 -0400 @@ -391,7 +391,7 @@ obj.activebookmark = d.get(b'activebook', b'') obj.interactive = d.get(b'interactive') == cls._interactive except (error.RepoLookupError, KeyError) as err: - raise error.CorruptedState(pycompat.bytestr(err)) + raise error.CorruptedState(stringutil.forcebytestr(err)) return obj