Mercurial > public > mercurial-scm > hg-stable
diff mercurial/streamclone.py @ 32299:076f1ff43f0f
clone: warn when streaming was requested but couldn't be performed
This helps both users and the people who support them figure out why
a stream clone couldn't be performed.
In an upcoming patch we're going to add a way for servers to hard
abort on a full getbundle. In those cases servers might expect
clients to perform a stream clone, so it's important to communicate
why one couldn't be done.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Mon, 08 May 2017 20:01:06 -0700 |
parents | 22fbca1d11ed |
children | 33b7283a3828 |
line wrap: on
line diff
--- a/mercurial/streamclone.py Mon May 08 18:47:24 2017 -0700 +++ b/mercurial/streamclone.py Mon May 08 20:01:06 2017 -0700 @@ -80,11 +80,21 @@ streamreqs = remote.capable('streamreqs') # This is weird and shouldn't happen with modern servers. if not streamreqs: + pullop.repo.ui.warn(_( + 'warning: stream clone requested but server has them ' + 'disabled\n')) return False, None streamreqs = set(streamreqs.split(',')) # Server requires something we don't support. Bail. - if streamreqs - repo.supportedformats: + missingreqs = streamreqs - repo.supportedformats + if missingreqs: + pullop.repo.ui.warn(_( + 'warning: stream clone requested but client is missing ' + 'requirements: %s\n') % ', '.join(sorted(missingreqs))) + pullop.repo.ui.warn( + _('(see https://www.mercurial-scm.org/wiki/MissingRequirement ' + 'for more information)\n')) return False, None requirements = streamreqs