diff options
author | Christian Couder <chriscool@tuxfamily.org> | 2006-08-31 08:42:11 +0200 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-08-31 14:16:38 -0700 |
commit | 7cf67205ca68a157c6ffdb4e5a4ff231217c0871 (patch) | |
tree | f0b8a3170cf5abcc5e448e8d1c58ccae7bfc940c /exec_cmd.c | |
parent | 2c6d22df9f8a975c88fc9a93c4db8bb0bd116b74 (diff) | |
download | git-7cf67205ca68a157c6ffdb4e5a4ff231217c0871.tar.gz |
Trace into open fd and refactor tracing code.
Now if GIT_TRACE is set to an integer value greater than 1
and lower than 10, we interpret this as an open fd value
and we trace into it. Note that this behavior is not
compatible with the previous one.
We also trace whole messages using one write(2) call to
make sure messages from processes do net get mixed up in
the middle.
It's now possible to run the tests like this:
GIT_TRACE=9 make test 9>/var/tmp/trace.log
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'exec_cmd.c')
-rw-r--r-- | exec_cmd.c | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/exec_cmd.c b/exec_cmd.c index e30936d72c..5d6a1247b4 100644 --- a/exec_cmd.c +++ b/exec_cmd.c @@ -97,26 +97,12 @@ 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); - } + trace_argv_printf(argv, -1, "trace: exec:"); /* 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); - } + trace_printf("trace: exec failed: %s\n", strerror(errno)); argv[0] = tmp; } |