[PATCH v3 2/4] trace.c: print program 'git' when child_process.git_cmd is set
- From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
- Date
- Jan 12, 2018, 09:56 UTC
- Message-ID
- <20180112095607.18293-3-pclouds@gmail.com>
- In-Reply-To
- <20180112095607.18293-1-pclouds@gmail.com>
We normally print full command line, including the program and its argument. When git_cmd is set, we have a special code path to run the right "git" program and child_process.argv[0] will not contain the program name anymore. As a result, we print just the command arguments.
I thought it was a regression when the code was refactored and git_cmd added, but apparently it's not. git_cmd mode was introduced before tracing was added in 8852f5d704 (run_command(): respect GIT_TRACE - 2008-07-07) so it's more like an oversight in 8852f5d704.
Fix it, print the program name "git" in git_cmd mode. It's nice to have now. But it will be more important later when we start to print env variables too, in shell syntax. The lack of a program name would look confusing then.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> --- trace.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/trace.c b/trace.c index f08c673b51..ed1f728021 100644 --- a/trace.c +++ b/trace.c @@ -283,6 +283,9 @@ void trace_run_command(const struct child_process *cp) strbuf_addf(&buf, "trace: run_command:"); + if (cp->git_cmd) + strbuf_addstr(&buf, " git"); + sq_quote_argv(&buf, cp->argv, 0); print_trace_line(&trace_default_key, &buf); }
-- 2.15.1.600.g899a5f85c6