diff -r 4c3a4bb31c0e -r 6580cf751418 mercurial/debugcommands.py --- a/mercurial/debugcommands.py Sat Apr 01 17:12:48 2017 +0900 +++ b/mercurial/debugcommands.py Fri Dec 15 09:30:16 2017 +0100 @@ -69,6 +69,7 @@ templater, treediscovery, upgrade, + url as urlmod, util, vfs as vfsmod, ) @@ -786,6 +787,30 @@ localrevs = opts['rev'] doit(localrevs, remoterevs) +_chunksize = 4 << 10 + +@command('debugdownload', + [ + ('o', 'output', '', _('path')), + ], + norepo=True) +def debugdownload(ui, url, output=None, **opts): + """download a resource using Mercurial logic and config + """ + fh = urlmod.open(ui, url, output) + + dest = ui + if output: + dest = open(output, "wb", _chunksize) + try: + data = fh.read(_chunksize) + while data: + dest.write(data) + data = fh.read(_chunksize) + finally: + if output: + dest.close() + @command('debugextensions', cmdutil.formatteropts, [], norepo=True) def debugextensions(ui, **opts): '''show information about active extensions'''