|
|
@@ -48,7 +48,7 @@ static void sendline(struct helper_data *helper, struct strbuf *buffer) |
|
|
if (debug) |
|
|
fprintf(stderr, "Debug: Remote helper: -> %s", buffer->buf); |
|
|
if (write_in_full(helper->helper->in, buffer->buf, buffer->len) < 0) |
|
|
die_errno("Full write to remote helper failed"); |
|
|
die_errno("full write to remote helper failed"); |
|
|
} |
|
|
|
|
|
static int recvline_fh(FILE *helper, struct strbuf *buffer) |
|
|
@@ -77,7 +77,7 @@ static void write_constant(int fd, const char *str) |
|
|
if (debug) |
|
|
fprintf(stderr, "Debug: Remote helper: -> %s", str); |
|
|
if (write_in_full(fd, str, strlen(str)) < 0) |
|
|
die_errno("Full write to remote helper failed"); |
|
|
die_errno("full write to remote helper failed"); |
|
|
} |
|
|
|
|
|
static const char *remove_ext_force(const char *url) |
|
|
@@ -129,7 +129,7 @@ static struct child_process *get_helper(struct transport *transport) |
|
|
|
|
|
code = start_command(helper); |
|
|
if (code < 0 && errno == ENOENT) |
|
|
die("Unable to find remote helper for '%s'", data->name); |
|
|
die("unable to find remote helper for '%s'", data->name); |
|
|
else if (code != 0) |
|
|
exit(code); |
|
|
|
|
|
@@ -145,7 +145,7 @@ static struct child_process *get_helper(struct transport *transport) |
|
|
*/ |
|
|
duped = dup(helper->out); |
|
|
if (duped < 0) |
|
|
die_errno("Can't dup helper output fd"); |
|
|
die_errno("can't dup helper output fd"); |
|
|
data->out = xfdopen(duped, "r"); |
|
|
|
|
|
write_constant(helper->in, "capabilities\n"); |
|
|
@@ -196,13 +196,13 @@ static struct child_process *get_helper(struct transport *transport) |
|
|
} else if (starts_with(capname, "no-private-update")) { |
|
|
data->no_private_update = 1; |
|
|
} else if (mandatory) { |
|
|
die("Unknown mandatory capability %s. This remote " |
|
|
"helper probably needs newer version of Git.", |
|
|
die("unknown mandatory capability %s; this remote " |
|
|
"helper probably needs newer version of Git", |
|
|
capname); |
|
|
} |
|
|
} |
|
|
if (!data->rs.nr && (data->import || data->bidi_import || data->export)) { |
|
|
warning("This remote helper should implement refspec capability."); |
|
|
warning("this remote helper should implement refspec capability"); |
|
|
} |
|
|
strbuf_release(&buf); |
|
|
if (debug) |
|
|
@@ -476,7 +476,7 @@ static int fetch_with_import(struct transport *transport, |
|
|
get_helper(transport); |
|
|
|
|
|
if (get_importer(transport, &fastimport)) |
|
|
die("Couldn't run fast-import"); |
|
|
die("couldn't run fast-import"); |
|
|
|
|
|
for (i = 0; i < nr_heads; i++) { |
|
|
posn = to_fetch[i]; |
|
|
@@ -499,7 +499,7 @@ static int fetch_with_import(struct transport *transport, |
|
|
*/ |
|
|
|
|
|
if (finish_command(&fastimport)) |
|
|
die("Error while running fast-import"); |
|
|
die("error while running fast-import"); |
|
|
|
|
|
/* |
|
|
* The fast-import stream of a remote helper that advertises |
|
|
@@ -528,7 +528,7 @@ static int fetch_with_import(struct transport *transport, |
|
|
private = xstrdup(name); |
|
|
if (private) { |
|
|
if (read_ref(private, &posn->old_oid) < 0) |
|
|
die("Could not read ref %s", private); |
|
|
die("could not read ref %s", private); |
|
|
free(private); |
|
|
} |
|
|
} |
|
|
@@ -554,7 +554,7 @@ static int run_connect(struct transport *transport, struct strbuf *cmdbuf) |
|
|
*/ |
|
|
duped = dup(helper->out); |
|
|
if (duped < 0) |
|
|
die_errno("Can't dup helper output fd"); |
|
|
die_errno("can't dup helper output fd"); |
|
|
input = xfdopen(duped, "r"); |
|
|
setvbuf(input, NULL, _IONBF, 0); |
|
|
|
|
|
@@ -573,7 +573,7 @@ static int run_connect(struct transport *transport, struct strbuf *cmdbuf) |
|
|
fprintf(stderr, "Debug: Falling back to dumb " |
|
|
"transport.\n"); |
|
|
} else { |
|
|
die("Unknown response to connect: %s", |
|
|
die("unknown response to connect: %s", |
|
|
cmdbuf->buf); |
|
|
} |
|
|
|
|
|
@@ -595,9 +595,9 @@ static int process_connect_service(struct transport *transport, |
|
|
if (strcmp(name, exec)) { |
|
|
int r = set_helper_option(transport, "servpath", exec); |
|
|
if (r > 0) |
|
|
warning("Setting remote service path not supported by protocol."); |
|
|
warning("setting remote service path not supported by protocol"); |
|
|
else if (r < 0) |
|
|
warning("Invalid remote service path."); |
|
|
warning("invalid remote service path"); |
|
|
} |
|
|
|
|
|
if (data->connect) { |
|
|
@@ -640,10 +640,10 @@ static int connect_helper(struct transport *transport, const char *name, |
|
|
/* Get_helper so connect is inited. */ |
|
|
get_helper(transport); |
|
|
if (!data->connect) |
|
|
die("Operation not supported by protocol."); |
|
|
die("operation not supported by protocol"); |
|
|
|
|
|
if (!process_connect_service(transport, name, exec)) |
|
|
die("Can't connect to subservice %s.", name); |
|
|
die("can't connect to subservice %s", name); |
|
|
|
|
|
fd[0] = data->helper->out; |
|
|
fd[1] = data->helper->in; |
|
|
@@ -978,12 +978,12 @@ static int push_refs_with_export(struct transport *transport, |
|
|
} |
|
|
|
|
|
if (get_exporter(transport, &exporter, &revlist_args)) |
|
|
die("Couldn't run fast-export"); |
|
|
die("couldn't run fast-export"); |
|
|
|
|
|
string_list_clear(&revlist_args, 1); |
|
|
|
|
|
if (finish_command(&exporter)) |
|
|
die("Error while running fast-export"); |
|
|
die("error while running fast-export"); |
|
|
if (push_update_refs_status(data, remote_refs, flags)) |
|
|
return 1; |
|
|
|
|
|
@@ -1070,7 +1070,7 @@ static struct ref *get_refs_list(struct transport *transport, int for_push, |
|
|
|
|
|
eov = strchr(buf.buf, ' '); |
|
|
if (!eov) |
|
|
die("Malformed response in ref list: %s", buf.buf); |
|
|
die("malformed response in ref list: %s", buf.buf); |
|
|
eon = strchr(eov + 1, ' '); |
|
|
*eov = '\0'; |
|
|
if (eon) |
|
|
@@ -1084,7 +1084,7 @@ static struct ref *get_refs_list(struct transport *transport, int for_push, |
|
|
if (has_attribute(eon + 1, "unchanged")) { |
|
|
(*tail)->status |= REF_STATUS_UPTODATE; |
|
|
if (read_ref((*tail)->name, &(*tail)->old_oid) < 0) |
|
|
die(_("Could not read ref %s"), |
|
|
die(_("could not read ref %s"), |
|
|
(*tail)->name); |
|
|
} |
|
|
} |
|
|
@@ -1322,11 +1322,11 @@ static int tloop_spawnwait_tasks(struct bidirectional_transfer_state *s) |
|
|
err = pthread_create(>p_thread, NULL, udt_copy_task_routine, |
|
|
&s->gtp); |
|
|
if (err) |
|
|
die("Can't start thread for copying data: %s", strerror(err)); |
|
|
die("can't start thread for copying data: %s", strerror(err)); |
|
|
err = pthread_create(&ptg_thread, NULL, udt_copy_task_routine, |
|
|
&s->ptg); |
|
|
if (err) |
|
|
die("Can't start thread for copying data: %s", strerror(err)); |
|
|
die("can't start thread for copying data: %s", strerror(err)); |
|
|
|
|
|
ret |= tloop_join(gtp_thread, "Git to program copy"); |
|
|
ret |= tloop_join(ptg_thread, "Program to git copy"); |
|
|
@@ -1385,7 +1385,7 @@ static int tloop_spawnwait_tasks(struct bidirectional_transfer_state *s) |
|
|
/* Fork thread #1: git to program. */ |
|
|
pid1 = fork(); |
|
|
if (pid1 < 0) |
|
|
die_errno("Can't start thread for copying data"); |
|
|
die_errno("can't start thread for copying data"); |
|
|
else if (pid1 == 0) { |
|
|
udt_kill_transfer(&s->ptg); |
|
|
exit(udt_copy_task_routine(&s->gtp) ? 0 : 1); |
|
|
@@ -1394,7 +1394,7 @@ static int tloop_spawnwait_tasks(struct bidirectional_transfer_state *s) |
|
|
/* Fork thread #2: program to git. */ |
|
|
pid2 = fork(); |
|
|
if (pid2 < 0) |
|
|
die_errno("Can't start thread for copying data"); |
|
|
die_errno("can't start thread for copying data"); |
|
|
else if (pid2 == 0) { |
|
|
udt_kill_transfer(&s->gtp); |
|
|
exit(udt_copy_task_routine(&s->ptg) ? 0 : 1); |
|
|
|