path: root/connect.h
diff options
authorJunio C Hamano <>2013-07-08 20:56:53 (GMT)
committerJunio C Hamano <>2013-07-08 21:34:24 (GMT)
commit47a59185369b8905ad3a4012688cba92fd2ac1ff (patch)
tree7e271a236273885e4188eb7e1910ba932bd2a1eb /connect.h
parentf8abaebab3fe1a1b873f9636ea410ac4007c8fa8 (diff)
cache.h: move remote/connect API out of it
The definition of "struct ref" in "cache.h", a header file so central to the system, always confused me. This structure is not about the local ref used by sha1-name API to name local objects. It is what refspecs are expanded into, after finding out what refs the other side has, to define what refs are updated after object transfer succeeds to what values. It belongs to "remote.h" together with "struct refspec". While we are at it, also move the types and functions related to the Git transport connection to a new header file connect.h Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'connect.h')
1 files changed, 13 insertions, 0 deletions
diff --git a/connect.h b/connect.h
new file mode 100644
index 0000000..9dff25c
--- /dev/null
+++ b/connect.h
@@ -0,0 +1,13 @@
+#ifndef CONNECT_H
+#define CONNECT_H
+#define CONNECT_VERBOSE (1u << 0)
+extern struct child_process *git_connect(int fd[2], const char *url, const char *prog, int flags);
+extern int finish_connect(struct child_process *conn);
+extern int git_connection_is_socket(struct child_process *conn);
+extern int server_supports(const char *feature);
+extern int parse_feature_request(const char *features, const char *feature);
+extern const char *server_feature_value(const char *feature, int *len_ret);
+extern const char *parse_feature_value(const char *feature_list, const char *feature, int *len_ret);