mercurial/utils/urlutil.py
changeset 47027 c029b35565dd
parent 46964 221f8585e985
child 47028 d69a9628eba7
equal deleted inserted replaced
47026:20eba5cef2e0 47027:c029b35565dd
   443     u = url(u)
   443     u = url(u)
   444     u.user = u.passwd = None
   444     u.user = u.passwd = None
   445     return bytes(u)
   445     return bytes(u)
   446 
   446 
   447 
   447 
       
   448 def try_path(ui, url):
       
   449     """try to build a path from a url
       
   450 
       
   451     Return None if no Path could built.
       
   452     """
       
   453     try:
       
   454         # we pass the ui instance are warning might need to be issued
       
   455         return path(ui, None, rawloc=url)
       
   456     except ValueError:
       
   457         return None
       
   458 
       
   459 
   448 def get_push_paths(repo, ui, dests):
   460 def get_push_paths(repo, ui, dests):
   449     """yields all the `path` selected as push destination by `dests`"""
   461     """yields all the `path` selected as push destination by `dests`"""
   450     if not dests:
   462     if not dests:
   451         if b'default-push' in ui.paths:
   463         if b'default-push' in ui.paths:
   452             yield ui.paths[b'default-push']
   464             yield ui.paths[b'default-push']
   469     for source in sources:
   481     for source in sources:
   470         if source in ui.paths:
   482         if source in ui.paths:
   471             url = ui.paths[source].rawloc
   483             url = ui.paths[source].rawloc
   472         else:
   484         else:
   473             # Try to resolve as a local path or URI.
   485             # Try to resolve as a local path or URI.
   474             try:
   486             path = try_path(ui, source)
   475                 # we pass the ui instance are warning might need to be issued
   487             if path is not None:
   476                 url = path(ui, None, rawloc=source).rawloc
   488                 url = path.rawloc
   477             except ValueError:
   489             else:
   478                 url = source
   490                 url = source
   479         yield parseurl(url, default_branches)
   491         yield parseurl(url, default_branches)
   480 
   492 
   481 
   493 
   482 def get_unique_push_path(action, repo, ui, dest=None):
   494 def get_unique_push_path(action, repo, ui, dest=None):
   518     else:
   530     else:
   519         if source in ui.paths:
   531         if source in ui.paths:
   520             url = ui.paths[source].rawloc
   532             url = ui.paths[source].rawloc
   521         else:
   533         else:
   522             # Try to resolve as a local path or URI.
   534             # Try to resolve as a local path or URI.
   523             try:
   535             path = try_path(ui, source)
   524                 # we pass the ui instance are warning might need to be issued
   536             if path is not None:
   525                 url = path(ui, None, rawloc=source).rawloc
   537                 url = path.rawloc
   526             except ValueError:
   538             else:
   527                 url = source
   539                 url = source
   528     return parseurl(url, default_branches)
   540     return parseurl(url, default_branches)
   529 
   541 
   530 
   542 
   531 def get_clone_path(ui, source, default_branches=()):
   543 def get_clone_path(ui, source, default_branches=()):
   540     else:
   552     else:
   541         if source in ui.paths:
   553         if source in ui.paths:
   542             url = ui.paths[source].rawloc
   554             url = ui.paths[source].rawloc
   543         else:
   555         else:
   544             # Try to resolve as a local path or URI.
   556             # Try to resolve as a local path or URI.
   545             try:
   557             path = try_path(ui, source)
   546                 # we pass the ui instance are warning might need to be issued
   558             if path is not None:
   547                 url = path(ui, None, rawloc=source).rawloc
   559                 url = path.rawloc
   548             except ValueError:
   560             else:
   549                 url = source
   561                 url = source
   550     clone_path, branch = parseurl(url, default_branches)
   562     clone_path, branch = parseurl(url, default_branches)
   551     return url, clone_path, branch
   563     return url, clone_path, branch
   552 
   564 
   553 
   565 
   605 
   617 
   606         # Most likely empty string.
   618         # Most likely empty string.
   607         # This may need to raise in the future.
   619         # This may need to raise in the future.
   608         if not name:
   620         if not name:
   609             return None
   621             return None
   610 
   622         if name in self:
   611         try:
       
   612             return self[name]
   623             return self[name]
   613         except KeyError:
   624         else:
   614             # Try to resolve as a local path or URI.
   625             # Try to resolve as a local path or URI.
   615             try:
   626             path = try_path(ui, name)
   616                 # we pass the ui instance are warning might need to be issued
   627             if path is None:
   617                 return path(ui, None, rawloc=name)
       
   618             except ValueError:
       
   619                 raise error.RepoError(_(b'repository %s does not exist') % name)
   628                 raise error.RepoError(_(b'repository %s does not exist') % name)
       
   629             return path.rawloc
   620 
   630 
   621 
   631 
   622 _pathsuboptions = {}
   632 _pathsuboptions = {}
   623 
   633 
   624 
   634