Thanks; the changes from the last round all look sensible to me, but did you know that the last round has already been in 'next' for a few weeks by now already? If you don't mind I'll turn these three into the following and queue as 4/3 on top of what is already merged, as reverting the merge with the old series and merging the new round to 'next' makes it messier than it already is. -- >8 -- From: Ilari Liusvaara <ilari.liusvaara@xxxxxxxxxxx> Subject: remote-fd/ext: finishing touches after code review When compiling with pthread support, transport-helper.c needs to include necessary header files. Also fix a few error messages in remote-ext and remote-fd programs, and a potential buffer underrun in remote-fd. In the documentation, clarify how %G and %V are used; the old description looked as if they take repository/vhost parameters, which was wrong. Also fix AsciiDoc markup for the page title of remote-fd/remote-ext manpages, and tweak the way how section headers are shown. Signed-off-by: Ilari Liusvaara <ilari.liusvaara@xxxxxxxxxxx> Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- Documentation/git-remote-ext.txt | 10 +++++----- Documentation/git-remote-fd.txt | 10 +++++----- builtin/remote-ext.c | 8 +++----- builtin/remote-fd.c | 6 +++--- transport-helper.c | 5 +++++ 5 files changed, 21 insertions(+), 18 deletions(-) diff --git a/Documentation/git-remote-ext.txt b/Documentation/git-remote-ext.txt index 8fb260b..f4fbf67 100644 --- a/Documentation/git-remote-ext.txt +++ b/Documentation/git-remote-ext.txt @@ -39,20 +39,20 @@ The following sequences have a special meaning: git-upload-pack, or git-upload-archive) of the service git wants to invoke. -'%G<repository>' (as argument):: +'%G' (must be first characters in argument):: This argument will not be passed to 'program'. Instead, it will cause helper to start by sending git:// service request to remote side with service field set to approiate value and - repository field set to <repository>. Default is not to send + repository field set to rest of the argument. Default is not to send such request. + This is useful if remote side is git:// server accessed over some tunnel. -'%V<host>' (as argument):: +'%V' (must be first characters in argument):: This argument will not be passed to 'program'. Instead it sets - the vhost field in git:// service request. Default is not to - send vhost in such request (if sent). + the vhost field in git:// service request (to rest of the argument). + Default is not to send vhost in such request (if sent). ENVIRONMENT VARIABLES: ---------------------- diff --git a/Documentation/git-remote-fd.txt b/Documentation/git-remote-fd.txt index 1c1a179..abc4944 100644 --- a/Documentation/git-remote-fd.txt +++ b/Documentation/git-remote-fd.txt @@ -1,5 +1,5 @@ git-remote-fd(1) -================= +================ NAME ---- @@ -28,13 +28,13 @@ It is assumed that any handshaking procedures have already been completed information to user in the URL in case that URL is displayed in some context. -ENVIRONMENT VARIABLES: ----------------------- +ENVIRONMENT VARIABLES +--------------------- GIT_TRANSLOOP_DEBUG:: If set, prints debugging information about various reads/writes. -EXAMPLES: ---------- +EXAMPLES +-------- git fetch fd::17 master:: Fetch master, using file descriptor #17 to communicate with git-upload-pack. diff --git a/builtin/remote-ext.c b/builtin/remote-ext.c index 1d3f1cf..1f77317 100644 --- a/builtin/remote-ext.c +++ b/builtin/remote-ext.c @@ -142,7 +142,7 @@ static const char **parse_argv(const char *arg, const char *service) for (i = 0; i < arguments; i++) ret[i] = temparray[i]; ret[arguments] = NULL; - return (const char **)ret; + return ret; } static void send_git_request(int stdin_fd, const char *serv, const char *repo, @@ -239,10 +239,8 @@ static int command_loop(const char *child) int cmd_remote_ext(int argc, const char **argv, const char *prefix) { - if (argc < 3) { - fprintf(stderr, "Error: URL missing"); - exit(1); - } + if (argc != 3) + die("Expected two arguments"); return command_loop(argv[2]); } diff --git a/builtin/remote-fd.c b/builtin/remote-fd.c index 7517f24..1f2467b 100644 --- a/builtin/remote-fd.c +++ b/builtin/remote-fd.c @@ -31,7 +31,7 @@ static void command_loop(int input_fd, int output_fd) } /* Strip end of line characters. */ i = strlen(buffer); - while (isspace(buffer[i - 1])) + while (i > 0 && isspace(buffer[i - 1])) buffer[--i] = 0; if (!strcmp(buffer, "capabilities")) { @@ -56,8 +56,8 @@ int cmd_remote_fd(int argc, const char **argv, const char *prefix) int output_fd = -1; char *end; - if (argc < 3) - die("URL missing"); + if (argc != 3) + die("Expected two arguments"); input_fd = (int)strtoul(argv[2], &end, 10); diff --git a/transport-helper.c b/transport-helper.c index 0c094d6..3a50856 100644 --- a/transport-helper.c +++ b/transport-helper.c @@ -9,6 +9,11 @@ #include "remote.h" #include "string-list.h" +#ifndef NO_PTHREADS +#include <pthread.h> +#include "thread-utils.h" +#endif + static int debug; struct helper_data -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html