* Re: [BUGFIX] Unbork remote helper execution
[not found] <1263321344-21237-1-git-send-email-ilari.liusvaara@elisanet.fi>
@ 2010-01-12 19:53 ` Johannes Sixt
2010-01-13 6:56 ` Junio C Hamano
0 siblings, 1 reply; 3+ messages in thread
From: Johannes Sixt @ 2010-01-12 19:53 UTC (permalink / raw)
To: Ilari Liusvaara; +Cc: Junio C Hamano, git
[added git@vger]
On Dienstag, 12. Januar 2010, Ilari Liusvaara wrote:
> Someone that obiviously didn't test the change did the following (the
> code blames to me, but I didn't write this):
>
> code = start_command(helper);
> if (code < 0 && errno == ENOENT)
> die("Unable to find remote helper for '%s'", data->name);
> else
> exit(code);
>
> Which is obiviously wrong. The code shouldn't exit if code is 0.
Duh! Sorry for that. Your original code indeed has 'else if (code != 0)'.
Thanks for catching this. BTW, the test suite passes nevertheless.
Aren't there any tests that exercise the code path, or do I have them
disabled somehow? So, yes: I didn't test the change.
Here is the amended commit that replaces the tip of js/exec-error-report,
with some light testing this time.
--- 8< ---
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Subject: [PATCH] Improve error message when a transport helper was not found
Perviously, the error message was:
git: 'remote-foo' is not a git-command. See 'git --help'.
By not treating the transport helper as a git command, a more suitable
error is reported:
fatal: Unable to find remote helper for 'foo'
Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
transport-helper.c | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/transport-helper.c b/transport-helper.c
index 6ece0d9..7dce4a4 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -102,6 +102,7 @@ static struct child_process *get_helper(struct transport *transport)
int refspec_nr = 0;
int refspec_alloc = 0;
int duped;
+ int code;
if (data->helper)
return data->helper;
@@ -111,13 +112,18 @@ static struct child_process *get_helper(struct transport *transport)
helper->out = -1;
helper->err = 0;
helper->argv = xcalloc(4, sizeof(*helper->argv));
- strbuf_addf(&buf, "remote-%s", data->name);
+ strbuf_addf(&buf, "git-remote-%s", data->name);
helper->argv[0] = strbuf_detach(&buf, NULL);
helper->argv[1] = transport->remote->name;
helper->argv[2] = remove_ext_force(transport->url);
- helper->git_cmd = 1;
- if (start_command(helper))
- die("Unable to run helper: git %s", helper->argv[0]);
+ helper->git_cmd = 0;
+ helper->silent_exec_failure = 1;
+ code = start_command(helper);
+ if (code < 0 && errno == ENOENT)
+ die("Unable to find remote helper for '%s'", data->name);
+ else if (code != 0)
+ exit(code);
+
data->helper = helper;
data->no_disconnect_req = 0;
--
1.6.6.115.gd1ab3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [BUGFIX] Unbork remote helper execution
2010-01-12 19:53 ` [BUGFIX] Unbork remote helper execution Johannes Sixt
@ 2010-01-13 6:56 ` Junio C Hamano
0 siblings, 0 replies; 3+ messages in thread
From: Junio C Hamano @ 2010-01-13 6:56 UTC (permalink / raw)
To: Johannes Sixt; +Cc: Ilari Liusvaara, git
Thanks, both of you.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [BUGFIX] Unbork remote helper execution
@ 2010-01-12 18:49 Ilari Liusvaara
0 siblings, 0 replies; 3+ messages in thread
From: Ilari Liusvaara @ 2010-01-12 18:49 UTC (permalink / raw)
To: git
Someone that obiviously didn't test the change did the following (the
code blames to me, but I didn't write this):
code = start_command(helper);
if (code < 0 && errno == ENOENT)
die("Unable to find remote helper for '%s'", data->name);
else
exit(code);
Which is obiviously wrong. The code shouldn't exit if code is 0.
Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
---
transport-helper.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/transport-helper.c b/transport-helper.c
index fece6d6..7012101 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -121,7 +121,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);
- else
+ else if (code != 0)
exit(code);
data->helper = helper;
--
1.6.6.102.gd6f8f.dirty
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-01-13 6:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <1263321344-21237-1-git-send-email-ilari.liusvaara@elisanet.fi>
2010-01-12 19:53 ` [BUGFIX] Unbork remote helper execution Johannes Sixt
2010-01-13 6:56 ` Junio C Hamano
2010-01-12 18:49 Ilari Liusvaara
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).