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

2013-07-08 Thread Junio C Hamano
Jeff King  writes:

> On Mon, Jul 08, 2013 at 02:09:59PM -0700, Junio C Hamano wrote:
>
>> 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.
>> [...]
>>  * 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.
>
> FWIW, this has often bugged me, too. I did not check what fallouts this
> will have for series in flight, but in general, I think it is a good
> thing to be doing.

The fallout can be seen at the tip of 'pu', which is fairly minimum
at the moment.
--
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


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

2013-07-08 Thread Jeff King
On Mon, Jul 08, 2013 at 02:09:59PM -0700, Junio C Hamano wrote:

> 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.
> [...]
>  * 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.

FWIW, this has often bugged me, too. I did not check what fallouts this
will have for series in flight, but in general, I think it is a good
thing to be doing.

-Peff
--
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


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

2013-07-08 Thread Junio C Hamano
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