summaryrefslogtreecommitdiff
path: root/transport.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2018-05-08 06:59:15 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-05-08 06:59:16 (GMT)
commit9bfa0f9be3e718f701200a242ea04259a4dc4dfc (patch)
treede7d4b20b93c6d80a347a0841de56ff6bedf502e /transport.h
parent1f1cddd558b54bb0ce19c8ace353fd07b758510d (diff)
parenta4d78ce26bf4816d868be21c7355d0e0940460a7 (diff)
downloadgit-9bfa0f9be3e718f701200a242ea04259a4dc4dfc.zip
git-9bfa0f9be3e718f701200a242ea04259a4dc4dfc.tar.gz
git-9bfa0f9be3e718f701200a242ea04259a4dc4dfc.tar.bz2
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.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/transport.h b/transport.h
index 3c68d73..e783cfa 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);