aboutsummaryrefslogtreecommitdiff
path: root/git.c
diff options
context:
space:
mode:
authorChristian Couder <chriscool@tuxfamily.org>2006-09-02 18:23:48 +0200
committerJunio C Hamano <junkio@cox.net>2006-09-02 14:47:53 -0700
commit6ce4e61f1be690681f6494eb5ca26540c2316f81 (patch)
tree61f46f0a8b9659b95b6096a8d6c3bb92fadf01ba /git.c
parent9befac470b4cfad529032dbcffcb71242ec71f91 (diff)
downloadgit-6ce4e61f1be690681f6494eb5ca26540c2316f81.tar.gz
git-6ce4e61f1be690681f6494eb5ca26540c2316f81.tar.xz
Trace into a file or an open fd and refactor tracing code.
If GIT_TRACE is set to an absolute path (starting with a '/' character), we interpret this as a file path and we trace into it. Also 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. This patch makes it possible to get trace information when running "make test". Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git.c')
-rw-r--r--git.c25
1 files changed, 4 insertions, 21 deletions
diff --git a/git.c b/git.c
index 9bb21ede8..1d0011181 100644
--- a/git.c
+++ b/git.c
@@ -179,17 +179,9 @@ static int handle_alias(int *argcp, const char ***argv)
if (!strcmp(alias_command, new_argv[0]))
die("recursive alias: %s", alias_command);
- if (getenv("GIT_TRACE")) {
- int i;
- fprintf(stderr, "trace: alias expansion: %s =>",
- alias_command);
- for (i = 0; i < count; ++i) {
- fputc(' ', stderr);
- sq_quote_print(stderr, new_argv[i]);
- }
- fputc('\n', stderr);
- fflush(stderr);
- }
+ trace_argv_printf(new_argv, count,
+ "trace: alias expansion: %s =>",
+ alias_command);
new_argv = xrealloc(new_argv, sizeof(char*) *
(count + *argcp + 1));
@@ -292,16 +284,7 @@ static void handle_internal_command(int argc, const char **argv, char **envp)
prefix = setup_git_directory();
if (p->option & USE_PAGER)
setup_pager();
- if (getenv("GIT_TRACE")) {
- int j;
- fprintf(stderr, "trace: built-in: git");
- for (j = 0; j < argc; ++j) {
- fputc(' ', stderr);
- sq_quote_print(stderr, argv[j]);
- }
- putc('\n', stderr);
- fflush(stderr);
- }
+ trace_argv_printf(argv, argc, "trace: built-in: git");
exit(p->fn(argc, argv, prefix));
}