Mercurial > hg
changeset 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 | ae4c0f279282 |
children | 8e6911426b88 |
files | mercurial/utils/urlutil.py |
diffstat | 1 files changed, 16 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/utils/urlutil.py Wed Apr 14 10:51:31 2021 +0200 +++ b/mercurial/utils/urlutil.py Wed Apr 14 11:15:54 2021 +0200 @@ -471,6 +471,22 @@ yield parseurl(url, default_branches) +def get_unique_pull_path(action, repo, ui, source=None, default_branches=()): + """return a unique `(path, branch)` or abort if multiple are found + + This is useful for command and action that does not support multiple + destination (yet). + + Note that for now, we cannot get multiple destination so this function is "trivial". + + The `action` parameter will be used for the error message. + """ + if source is None: + source = b'default' + url = ui.expandpath(source) + return parseurl(url, default_branches) + + def get_clone_path(ui, source, default_branches=()): """return the `(origsource, path, branch)` selected as clone source""" url = ui.expandpath(source)