comparison mercurial/utils/urlutil.py @ 49833:9f249dee8ce8

path: simplify the `get_unique_pull_path` function Simply delegate the search to `get_pull_paths` and check how many we got.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 02 Dec 2022 01:55:05 +0100
parents bcb172e360d0
children f4626b74b941
comparison
equal deleted inserted replaced
49832:bcb172e360d0 49833:9f249dee8ce8
548 This is useful for command and action that does not support multiple 548 This is useful for command and action that does not support multiple
549 destination (yet). 549 destination (yet).
550 550
551 The `action` parameter will be used for the error message. 551 The `action` parameter will be used for the error message.
552 """ 552 """
553 urls = [] 553 sources = []
554 if source is None: 554 if source is not None:
555 if b'default' in ui.paths: 555 sources.append(source)
556 urls.extend(p.rawloc for p in ui.paths[b'default']) 556
557 else: 557 pull_paths = list(get_pull_paths(repo, ui, sources=sources))
558 # XXX this is the historical default behavior, but that is not 558 path_count = len(pull_paths)
559 # great, consider breaking BC on this. 559 if path_count != 1:
560 urls.append(b'default')
561 else:
562 if source in ui.paths:
563 urls.extend(p.rawloc for p in ui.paths[source])
564 else:
565 # Try to resolve as a local path or URI.
566 path = try_path(ui, source)
567 if path is not None:
568 urls.append(path.rawloc)
569 else:
570 urls.append(source)
571 if len(urls) != 1:
572 if source is None: 560 if source is None:
573 msg = _( 561 msg = _(
574 b"default path points to %d urls while %s only supports one" 562 b"default path points to %d urls while %s only supports one"
575 ) 563 )
576 msg %= (len(urls), action) 564 msg %= (path_count, action)
577 else: 565 else:
578 msg = _(b"path points to %d urls while %s only supports one: %s") 566 msg = _(b"path points to %d urls while %s only supports one: %s")
579 msg %= (len(urls), action, source) 567 msg %= (path_count, action, source)
580 raise error.Abort(msg) 568 raise error.Abort(msg)
581 return parseurl(urls[0], default_branches) 569 return parseurl(pull_paths[0].rawloc, default_branches)
582 570
583 571
584 def get_clone_path(ui, source, default_branches=()): 572 def get_clone_path(ui, source, default_branches=()):
585 """return the `(origsource, path, branch)` selected as clone source""" 573 """return the `(origsource, path, branch)` selected as clone source"""
586 urls = [] 574 urls = []