diff options
author | Junio C Hamano <junkio@cox.net> | 2006-07-13 06:09:10 (GMT) |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-07-13 06:09:10 (GMT) |
commit | d3ba675aae3c6c5722ad15cd9d0f3b7634e976ce (patch) | |
tree | 94813d10e42424a31cd58ad8eb9f338874cd0d7d /exec_cmd.c | |
parent | a72f9373c01f9bbebd14af7cec6ff0de4c27c578 (diff) | |
parent | 1d0361e806086f6076c221ff5bb40b73643e96c3 (diff) | |
download | git-d3ba675aae3c6c5722ad15cd9d0f3b7634e976ce.zip git-d3ba675aae3c6c5722ad15cd9d0f3b7634e976ce.tar.gz git-d3ba675aae3c6c5722ad15cd9d0f3b7634e976ce.tar.bz2 |
Merge branch 'ml/trace'
* ml/trace:
test-lib: unset GIT_TRACE
GIT_TRACE: fix a mixed declarations and code warning
GIT_TRACE: show which built-in/external commands are executed
Diffstat (limited to 'exec_cmd.c')
-rw-r--r-- | exec_cmd.c | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -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")) { + const char **p = argv; + fputs("trace: exec:", stderr); + 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; |