path: add a new argument to control path validation
During pull, unvalidated path might be used, having the option to do so directly will allow use to simplify some code and unlock more `path` usage later in the series.
Differential Revision: https://phab.mercurial-scm.org/D11671
--- a/mercurial/utils/urlutil.py Fri Oct 15 14:05:20 2021 +0100
+++ b/mercurial/utils/urlutil.py Fri Oct 15 02:36:38 2021 +0200
@@ -818,7 +818,14 @@
class path(object):
"""Represents an individual path and its configuration."""
- def __init__(self, ui=None, name=None, rawloc=None, suboptions=None):
+ def __init__(
+ self,
+ ui=None,
+ name=None,
+ rawloc=None,
+ suboptions=None,
+ validate_path=True,
+ ):
"""Construct a path from its config options.
``ui`` is the ``ui`` instance the path is coming from.
@@ -856,7 +863,8 @@
self.rawloc = rawloc
self.loc = b'%s' % u
- self._validate_path()
+ if validate_path:
+ self._validate_path()
_path, sub_opts = ui.configsuboptions(b'paths', b'*')
self._own_sub_opts = {}