comparison mercurial/utils/urlutil.py @ 46936:1998a8311c48

urlutil: add a new `get_unique_pull_path` This function is dedicated to call that needs a single destination. Currently most caller actually need that since few actually support multiple destinations (the most importants `hg push` and `hg outgoing` do). So having a clear API point for that will be important when the time comes to have a single `[paths]` alias resolving to multiple urls. Differential Revision: https://phab.mercurial-scm.org/D10403
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 14 Apr 2021 11:15:54 +0200
parents ebb13f9a9ba8
children 368294967c95
comparison
equal deleted inserted replaced
46935:ae4c0f279282 46936:1998a8311c48
469 for source in sources: 469 for source in sources:
470 url = ui.expandpath(source) 470 url = ui.expandpath(source)
471 yield parseurl(url, default_branches) 471 yield parseurl(url, default_branches)
472 472
473 473
474 def get_unique_pull_path(action, repo, ui, source=None, default_branches=()):
475 """return a unique `(path, branch)` or abort if multiple are found
476
477 This is useful for command and action that does not support multiple
478 destination (yet).
479
480 Note that for now, we cannot get multiple destination so this function is "trivial".
481
482 The `action` parameter will be used for the error message.
483 """
484 if source is None:
485 source = b'default'
486 url = ui.expandpath(source)
487 return parseurl(url, default_branches)
488
489
474 def get_clone_path(ui, source, default_branches=()): 490 def get_clone_path(ui, source, default_branches=()):
475 """return the `(origsource, path, branch)` selected as clone source""" 491 """return the `(origsource, path, branch)` selected as clone source"""
476 url = ui.expandpath(source) 492 url = ui.expandpath(source)
477 path, branch = parseurl(url, default_branches) 493 path, branch = parseurl(url, default_branches)
478 return url, path, branch 494 return url, path, branch