Mercurial > hg
changeset 46910:df7439cc6806
urlutil: add a `get_pull_paths` to perform the pull destination logic
As is this changeset does not change anything. However having an official empty
point will help unifying the logic and encapsulate the details and update the
logic to support path definition pointing to multiple other path.
Differential Revision: https://phab.mercurial-scm.org/D10378
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 13 Apr 2021 12:28:44 +0200 |
parents | 067840864f37 |
children | 6071bfab6292 |
files | mercurial/commands.py mercurial/utils/urlutil.py |
diffstat | 2 files changed, 11 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Mon Apr 12 22:22:56 2021 +0200 +++ b/mercurial/commands.py Tue Apr 13 12:28:44 2021 +0200 @@ -5387,12 +5387,8 @@ hint = _(b'use hg pull followed by hg update DEST') raise error.InputError(msg, hint=hint) - if not sources: - sources = [b'default'] - for source in sources: - source, branches = urlutil.parseurl( - ui.expandpath(source), opts.get(b'branch') - ) + sources = urlutil.get_pull_paths(repo, ui, sources, opts.get(b'branch')) + for source, branches in sources: ui.status(_(b'pulling from %s\n') % urlutil.hidepassword(source)) ui.flush() other = hg.peer(repo, opts, source)
--- a/mercurial/utils/urlutil.py Mon Apr 12 22:22:56 2021 +0200 +++ b/mercurial/utils/urlutil.py Tue Apr 13 12:28:44 2021 +0200 @@ -453,6 +453,15 @@ yield ui.getpath(dest, default=(b'default-push', b'default')) +def get_pull_paths(repo, ui, sources, default_branches=()): + """yields all the `(path, branch)` selected as pull source by `sources`""" + if not sources: + sources = [b'default'] + for source in sources: + url = ui.expandpath(source) + yield parseurl(url, default_branches) + + def parseurl(path, branches=None): '''parse url#branch, returning (url, (branch, branches))''' u = url(path)