From 575ba9d69d5dfd07d95343fe946a5991c4cb27d6 Mon Sep 17 00:00:00 2001 From: Matthias Lederhofer Date: Sun, 25 Jun 2006 15:56:18 +0200 Subject: GIT_TRACE: show which built-in/external commands are executed With the environment variable GIT_TRACE set git will show - alias expansion - built-in command execution - external command execution on stderr. Signed-off-by: Matthias Lederhofer Signed-off-by: Junio C Hamano --- exec_cmd.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'exec_cmd.c') diff --git a/exec_cmd.c b/exec_cmd.c index c1539d12ce..f2133ec93f 100644 --- a/exec_cmd.c +++ b/exec_cmd.c @@ -1,5 +1,6 @@ #include "cache.h" #include "exec_cmd.h" +#include "quote.h" #define MAX_ARGS 32 extern char **environ; @@ -96,9 +97,27 @@ int execv_git_cmd(const char **argv) tmp = argv[0]; argv[0] = git_command; + if (getenv("GIT_TRACE")) { + fputs("trace: exec:", stderr); + const char **p = argv; + while (*p) { + fputc(' ', stderr); + sq_quote_print(stderr, *p); + ++p; + } + putc('\n', stderr); + fflush(stderr); + } + /* execve() can only ever return if it fails */ execve(git_command, (char **)argv, environ); + if (getenv("GIT_TRACE")) { + fprintf(stderr, "trace: exec failed: %s\n", + strerror(errno)); + fflush(stderr); + } + argv[0] = tmp; } return -1; -- cgit v1.3 From e82e058d3ad1d50fbb99fac8630ad7b511ca4abe Mon Sep 17 00:00:00 2001 From: Timo Hirvonen Date: Wed, 28 Jun 2006 12:15:00 +0300 Subject: GIT_TRACE: fix a mixed declarations and code warning Signed-off-by: Timo Hirvonen Signed-off-by: Junio C Hamano --- exec_cmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'exec_cmd.c') diff --git a/exec_cmd.c b/exec_cmd.c index f2133ec93f..62f51fcd6e 100644 --- a/exec_cmd.c +++ b/exec_cmd.c @@ -98,8 +98,8 @@ int execv_git_cmd(const char **argv) argv[0] = git_command; if (getenv("GIT_TRACE")) { - fputs("trace: exec:", stderr); const char **p = argv; + fputs("trace: exec:", stderr); while (*p) { fputc(' ', stderr); sq_quote_print(stderr, *p); -- cgit v1.3