@@ -798,6 +798,60 @@ retrieving the header from a bundle at the indicated URI, and thus
798798save themselves and the server(s) the request(s) needed to inspect the
799799headers of that bundle or bundles.
800800
801+ promisor-remote=<pr-infos>
802+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
803+
804+ The server may advertise some promisor remotes it is using or knows
805+ about to a client which may want to use them as its promisor remotes,
806+ instead of this repository. In this case <pr-infos> should be of the
807+ form:
808+
809+ pr-infos = pr-info | pr-infos ";" pr-info
810+
811+ pr-info = "name=" pr-name | "name=" pr-name "," "url=" pr-url
812+
813+ where `pr-name` is the urlencoded name of a promisor remote, and
814+ `pr-url` the urlencoded URL of that promisor remote.
815+
816+ In this case, if the client decides to use one or more promisor
817+ remotes the server advertised, it can reply with
818+ "promisor-remote=<pr-names>" where <pr-names> should be of the form:
819+
820+ pr-names = pr-name | pr-names ";" pr-name
821+
822+ where `pr-name` is the urlencoded name of a promisor remote the server
823+ advertised and the client accepts.
824+
825+ Note that, everywhere in this document, `pr-name` MUST be a valid
826+ remote name, and the ';' and ',' characters MUST be encoded if they
827+ appear in `pr-name` or `pr-url`.
828+
829+ If the server doesn't know any promisor remote that could be good for
830+ a client to use, or prefers a client not to use any promisor remote it
831+ uses or knows about, it shouldn't advertise the "promisor-remote"
832+ capability at all.
833+
834+ In this case, or if the client doesn't want to use any promisor remote
835+ the server advertised, the client shouldn't advertise the
836+ "promisor-remote" capability at all in its reply.
837+
838+ The "promisor.advertise" and "promisor.acceptFromServer" configuration
839+ options can be used on the server and client side respectively to
840+ control what they advertise or accept respectively. See the
841+ documentation of these configuration options for more information.
842+
843+ Note that in the future it would be nice if the "promisor-remote"
844+ protocol capability could be used by the server, when responding to
845+ `git fetch` or `git clone`, to advertise better-connected remotes that
846+ the client can use as promisor remotes, instead of this repository, so
847+ that the client can lazily fetch objects from these other
848+ better-connected remotes. This would require the server to omit in its
849+ response the objects available on the better-connected remotes that
850+ the client has accepted. This hasn't been implemented yet though. So
851+ for now this "promisor-remote" capability is useful only when the
852+ server advertises some promisor remotes it already uses to borrow
853+ objects from.
854+
801855GIT
802856---
803857Part of the linkgit:git[1] suite
0 commit comments