mercurial/ui.py
changeset 46826 83b0a5c0dfec
parent 46825 4821cb414a5c
child 46827 1ecf082386b7
equal deleted inserted replaced
46825:4821cb414a5c 46826:83b0a5c0dfec
  2195             if not loc:
  2195             if not loc:
  2196                 continue
  2196                 continue
  2197             loc, sub_opts = ui.configsuboptions(b'paths', name)
  2197             loc, sub_opts = ui.configsuboptions(b'paths', name)
  2198             self[name] = path(ui, name, rawloc=loc, suboptions=sub_opts)
  2198             self[name] = path(ui, name, rawloc=loc, suboptions=sub_opts)
  2199 
  2199 
       
  2200         for name, p in sorted(self.items()):
       
  2201             p.chain_path(ui, self)
       
  2202 
  2200     def getpath(self, ui, name, default=None):
  2203     def getpath(self, ui, name, default=None):
  2201         """Return a ``path`` from a string, falling back to default.
  2204         """Return a ``path`` from a string, falling back to default.
  2202 
  2205 
  2203         ``name`` can be a named path or locations. Locations are filesystem
  2206         ``name`` can be a named path or locations. Locations are filesystem
  2204         paths or URIs.
  2207         paths or URIs.
  2328             self._own_sub_opts = suboptions.copy()
  2331             self._own_sub_opts = suboptions.copy()
  2329             sub_opts.update(suboptions)
  2332             sub_opts.update(suboptions)
  2330         self._all_sub_opts = sub_opts.copy()
  2333         self._all_sub_opts = sub_opts.copy()
  2331 
  2334 
  2332         self._apply_suboptions(ui, sub_opts)
  2335         self._apply_suboptions(ui, sub_opts)
       
  2336 
       
  2337     def chain_path(self, ui, paths):
       
  2338         if self.url.scheme == b'path':
       
  2339             assert self.url.path is None
       
  2340             subpath = paths[self.url.host]
       
  2341             self.url = subpath.url
       
  2342             self.rawloc = subpath.rawloc
       
  2343             self.loc = subpath.loc
       
  2344             if self.branch is None:
       
  2345                 self.branch = subpath.branch
       
  2346             else:
       
  2347                 base = self.rawloc.rsplit(b'#', 1)[0]
       
  2348                 self.rawloc = b'%s#%s' % (base, self.branch)
       
  2349             suboptions = subpath._all_sub_opts.copy()
       
  2350             suboptions.update(self._own_sub_opts)
       
  2351             self._apply_suboptions(ui, suboptions)
  2333 
  2352 
  2334     def _validate_path(self):
  2353     def _validate_path(self):
  2335         # When given a raw location but not a symbolic name, validate the
  2354         # When given a raw location but not a symbolic name, validate the
  2336         # location is valid.
  2355         # location is valid.
  2337         if (
  2356         if (