##// END OF EJS Templates
path: simplify the implementation of `get_clone_path`...
marmoute -
r50634:ffe8dd94 default
parent child Browse files
Show More
@@ -581,39 +581,15 b' def get_unique_pull_path(action, repo, u'
581 return parseurl(path.rawloc, default_branches)
581 return parseurl(path.rawloc, default_branches)
582
582
583
583
584 def get_clone_path(ui, source, default_branches=()):
584 def get_clone_path(ui, source, default_branches=None):
585 """return the `(origsource, url, branch)` selected as clone source"""
585 """return the `(origsource, url, branch)` selected as clone source"""
586 urls = []
586 if default_branches is None:
587 if source is None:
587 default_branches = []
588 if b'default' in ui.paths:
588 if source == b'':
589 urls.extend(p.rawloc for p in ui.paths[b'default'])
589 return (b'', b'', (None, default_branches))
590 else:
590 path = get_unique_pull_path_obj(b'clone', ui, source=source)
591 # XXX this is the historical default behavior, but that is not
591 branches = (path.branch, default_branches)
592 # great, consider breaking BC on this.
592 return path.rawloc, path.loc, branches
593 urls.append(b'default')
594 else:
595 if source in ui.paths:
596 urls.extend(p.rawloc for p in ui.paths[source])
597 else:
598 # Try to resolve as a local path or URI.
599 path = try_path(ui, source)
600 if path is not None:
601 urls.append(path.rawloc)
602 else:
603 urls.append(source)
604 if len(urls) != 1:
605 if source is None:
606 msg = _(
607 b"default path points to %d urls while only one is supported"
608 )
609 msg %= len(urls)
610 else:
611 msg = _(b"path points to %d urls while only one is supported: %s")
612 msg %= (len(urls), source)
613 raise error.Abort(msg)
614 url = urls[0]
615 clone_path, branch = parseurl(url, default_branches)
616 return url, clone_path, branch
617
593
618
594
619 def parseurl(path, branches=None):
595 def parseurl(path, branches=None):
General Comments 0
You need to be logged in to leave comments. Login now