[Request] [+ ] D11281: templater: swap `\` with `/` to allow the resource logic to kicks in

marmoute (Pierre-Yves David) phabricator at mercurial-scm.org
Tue Aug 17 19:00:05 UTC 2021


marmoute created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  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

REPOSITORY
  rHG Mercurial

BRANCH
  stable

REVISION DETAIL
  https://phab.mercurial-scm.org/D11281

AFFECTED FILES
  mercurial/templater.py

CHANGE DETAILS

diff --git a/mercurial/templater.py b/mercurial/templater.py
--- a/mercurial/templater.py
+++ b/mercurial/templater.py
@@ -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 (



To: marmoute, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20210817/3b8c1bd9/attachment.html>


More information about the Mercurial-patches mailing list