Junio C Hamano writes:
> 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
> ---
>
> * I hate to to this kind of code-movement in the middle of the
>cycle, but every time I follow the push->transport codepath, I
>become disoriented by these "struct ref"s.
>
> builtin/fetch-pack.c | 2 ++
> builtin/receive-pack.c | 1 +
> builtin/send-pack.c| 1 +
> cache.h| 62
> --
> connect.c | 1 +
> fetch-pack.c | 1 +
> fetch-pack.h | 1 +
> refs.c | 8 ---
> remote.c | 8 +++
> remote.h | 54 +++
> send-pack.c| 1 +
> transport.c| 2 ++
> transport.h| 1 +
> upload-pack.c | 1 +
> 14 files changed, 74 insertions(+), 70 deletions(-)
Of course, I should have noticed that the math does not work out
without this part:
connect.h | 13 +
1 file changed, 13 insertions(+)
diff --git a/connect.h b/connect.h
new file mode 100644
index 000..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);
+
+#endif
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html