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