diff options
authorIlari Liusvaara <>2010-11-17 17:15:34 (GMT)
committerJunio C Hamano <>2010-11-19 19:04:20 (GMT)
commit7851b1e60fabe350216d48e6de03a3ed21a49953 (patch)
parent7f3ecebfcda9b32252a4791dc716c1e3d88c9f70 (diff)
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 <> Signed-off-by: Junio C Hamano <>
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).
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 @@
@@ -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
If set, prints debugging information about various reads/writes.
git fetch fd::17 master::
Fetch master, using file descriptor #17 to communicate with
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"
static int debug;
struct helper_data