diff -r e6948aafda6f -r dc201a09e82c mercurial/bundlecaches.py --- a/mercurial/bundlecaches.py Fri May 26 16:55:52 2023 +0200 +++ b/mercurial/bundlecaches.py Fri May 26 17:41:25 2023 +0200 @@ -25,8 +25,29 @@ CB_MANIFEST_FILE = b'clonebundles.manifest' + def get_manifest(repo): - return repo.vfs.tryread(CB_MANIFEST_FILE) + """get the bundle manifest to be served to a client from a server""" + raw_text = repo.vfs.tryread(CB_MANIFEST_FILE) + entries = [e.split(b' ', 1) for e in raw_text.splitlines()] + + new_lines = [] + for e in entries: + url = alter_bundle_url(repo, e[0]) + if len(e) == 1: + line = url + b'\n' + else: + line = b"%s %s\n" % (url, e[1]) + new_lines.append(line) + return b''.join(new_lines) + + +def alter_bundle_url(repo, url): + """a function that exist to help extension and hosting to alter the url + + This will typically be used to inject authentication information in the url + of cached bundles.""" + return url @attr.s