Junio C Hamano <gits...@pobox.com> 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 <gits...@pobox.com>
> ---
>
>  * 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 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);
+
+#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

Reply via email to