--- a/mercurial/commands.py Wed Mar 10 06:03:55 2021 +0100
+++ b/mercurial/commands.py Wed Mar 10 06:03:01 2021 +0100
@@ -5323,11 +5323,11 @@
),
]
+ remoteopts,
- _(b'[-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE]'),
+ _(b'[-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE]...'),
helpcategory=command.CATEGORY_REMOTE_REPO_MANAGEMENT,
helpbasic=True,
)
-def pull(ui, repo, source=b"default", **opts):
+def pull(ui, repo, *sources, **opts):
"""pull changes from the specified source
Pull changes from a remote repository to a local one.
@@ -5351,6 +5351,10 @@
If SOURCE is omitted, the 'default' path will be used.
See :hg:`help urls` for more information.
+ If multiple sources are specified, they will be pulled sequentially as if
+ the command was run multiple time. If --update is specify and the command
+ will stop at the first failed --update.
+
Specifying bookmark as ``.`` is equivalent to specifying the active
bookmark's name.
@@ -5365,7 +5369,9 @@
hint = _(b'use hg pull followed by hg update DEST')
raise error.InputError(msg, hint=hint)
- if True:
+ if not sources:
+ sources = [b'default']
+ for source in sources:
source, branches = hg.parseurl(
ui.expandpath(source), opts.get(b'branch')
)
@@ -5463,6 +5469,9 @@
finally:
other.close()
+ # skip the remaining pull source if they are some conflict.
+ if update_conflict:
+ break
if update_conflict:
return 1
else: