Mercurial > hg
changeset 47829:7ab7f73a7f0a stable
templater: swap `\` with `/` to allow the resource logic to kicks in
Without this change our wrapper to the resource logic will fails to details the
nesting and try to pass `directory/file` entry to the resource module, leading
to a crash.
Ideally, we should track down all caller passing `\` instead of `/`, but that
is far more intrusive and we would like to have a working pyoxidized version
working for 5.9 It will be easy to add a warning to the above code to track
down "bad" caller during the 6.0 cycle.
This reduce the number of failing test with pyoxidizer from 52 to 23
Differential Revision: https://phab.mercurial-scm.org/D11281
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 17 Aug 2021 13:22:06 +0200 |
parents | 3712c0ee9e9c |
children | 981cef5188c3 |
files | mercurial/templater.py |
diffstat | 1 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/templater.py Thu Aug 05 18:38:42 2021 +0200 +++ b/mercurial/templater.py Tue Aug 17 13:22:06 2021 +0200 @@ -1117,6 +1117,13 @@ return f, open(f, mode='rb') # Otherwise try to read it using the resources API + if pycompat.iswindows: + # quick hack to make sure we can process '/' in the code dealing with + # ressource. Ideally we would make sure we use `/` instead of `ossep` + # in the templater code, but that seems a bigger and less certain + # change that we better left for the default branch. + name_paths = name.split(pycompat.ossep) + name = b'/'.join(name_paths) name_parts = name.split(b'/') package_name = b'.'.join([b'mercurial', b'templates'] + name_parts[:-1]) return (