diff options
author | Junio C Hamano <gitster@pobox.com> | 2018-05-08 08:59:15 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-05-08 08:59:16 +0200 |
commit | 9bfa0f9be3e718f701200a242ea04259a4dc4dfc (patch) | |
tree | de7d4b20b93c6d80a347a0841de56ff6bedf502e /transport.h | |
parent | The fourth batch for 2.18 (diff) | |
parent | remote-curl: don't request v2 when pushing (diff) | |
download | git-9bfa0f9be3e718f701200a242ea04259a4dc4dfc.tar.xz git-9bfa0f9be3e718f701200a242ea04259a4dc4dfc.zip |
Merge branch 'bw/protocol-v2'
The beginning of the next-gen transfer protocol.
* bw/protocol-v2: (35 commits)
remote-curl: don't request v2 when pushing
remote-curl: implement stateless-connect command
http: eliminate "# service" line when using protocol v2
http: don't always add Git-Protocol header
http: allow providing extra headers for http requests
remote-curl: store the protocol version the server responded with
remote-curl: create copy of the service name
pkt-line: add packet_buf_write_len function
transport-helper: introduce stateless-connect
transport-helper: refactor process_connect_service
transport-helper: remove name parameter
connect: don't request v2 when pushing
connect: refactor git_connect to only get the protocol version once
fetch-pack: support shallow requests
fetch-pack: perform a fetch using v2
upload-pack: introduce fetch server command
push: pass ref prefixes when pushing
fetch: pass ref prefixes when fetching
ls-remote: pass ref prefixes when requesting a remote's refs
transport: convert transport_get_remote_refs to take a list of ref prefixes
...
Diffstat (limited to 'transport.h')
-rw-r--r-- | transport.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/transport.h b/transport.h index 3c68d73b21..e783cfa075 100644 --- a/transport.h +++ b/transport.h @@ -60,6 +60,12 @@ struct transport { unsigned cloning : 1; /* + * Indicates that the transport is connected via a half-duplex + * connection and should operate in stateless-rpc mode. + */ + unsigned stateless_rpc : 1; + + /* * These strings will be passed to the {pre, post}-receive hook, * on the remote side, if both sides support the push options capability. */ @@ -194,7 +200,17 @@ int transport_push(struct transport *connection, int refspec_nr, const char **refspec, int flags, unsigned int * reject_reasons); -const struct ref *transport_get_remote_refs(struct transport *transport); +/* + * Retrieve refs from a remote. + * + * Optionally a list of ref prefixes can be provided which can be sent to the + * server (when communicating using protocol v2) to enable it to limit the ref + * advertisement. Since ref filtering is done on the server's end (and only + * when using protocol v2), this can return refs which don't match the provided + * ref_prefixes. + */ +const struct ref *transport_get_remote_refs(struct transport *transport, + const struct argv_array *ref_prefixes); int transport_fetch_refs(struct transport *transport, struct ref *refs); void transport_unlock_pack(struct transport *transport); |