git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] cache.h: move remote/connect API out of it

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 8, 2013, 21:35 UTC
Message-ID
<7vwqp0ybsy.fsf@alter.siamese.dyndns.org>
In-Reply-To
<7v1u78zrko.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 18 quoted lines
> 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 <gitster@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.
Show 16 quoted lines
>
>  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
Previous: Junio C HamanoNext: Jeff King
Message 2 of 4 in “cache.h: move remote/connect API out of it”
  1. cache.h: move remote/connect API out of itJunio C Hamano, Jul 8, 2013
  2. Junio C HamanoJul 8, 2013
  3. Jeff KingJul 9, 2013
  4. Junio C HamanoJul 9, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.