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