mirror of
https://github.com/git/git.git
synced 2024-11-24 02:17:02 +08:00
builtins: print setup info if repo is found
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
7ebee44167
commit
a9ca8a85ef
1
cache.h
1
cache.h
@ -1062,6 +1062,7 @@ __attribute__((format (printf, 1, 2)))
|
||||
extern void trace_printf(const char *format, ...);
|
||||
__attribute__((format (printf, 2, 3)))
|
||||
extern void trace_argv_printf(const char **argv, const char *format, ...);
|
||||
extern void trace_repo_setup(const char *prefix);
|
||||
|
||||
/* convert.c */
|
||||
/* returns 1 if *dst was used */
|
||||
|
4
git.c
4
git.c
@ -264,6 +264,10 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
|
||||
use_pager = check_pager_config(p->cmd);
|
||||
if (use_pager == -1 && p->option & USE_PAGER)
|
||||
use_pager = 1;
|
||||
|
||||
if ((p->option & (RUN_SETUP | RUN_SETUP_GENTLY)) &&
|
||||
startup_info->have_repository) /* get_git_dir() may set up repo, avoid that */
|
||||
trace_repo_setup(prefix);
|
||||
}
|
||||
commit_pager_choice();
|
||||
|
||||
|
42
trace.c
42
trace.c
@ -131,3 +131,45 @@ void trace_argv_printf(const char **argv, const char *fmt, ...)
|
||||
if (need_close)
|
||||
close(fd);
|
||||
}
|
||||
|
||||
static const char *quote_crnl(const char *path)
|
||||
{
|
||||
static char new_path[PATH_MAX];
|
||||
const char *p2 = path;
|
||||
char *p1 = new_path;
|
||||
|
||||
if (!path)
|
||||
return NULL;
|
||||
|
||||
while (*p2) {
|
||||
switch (*p2) {
|
||||
case '\\': *p1++ = '\\'; *p1++ = '\\'; break;
|
||||
case '\n': *p1++ = '\\'; *p1++ = 'n'; break;
|
||||
case '\r': *p1++ = '\\'; *p1++ = 'r'; break;
|
||||
default:
|
||||
*p1++ = *p2;
|
||||
}
|
||||
p2++;
|
||||
}
|
||||
*p1 = '\0';
|
||||
return new_path;
|
||||
}
|
||||
|
||||
/* FIXME: move prefix to startup_info struct and get rid of this arg */
|
||||
void trace_repo_setup(const char *prefix)
|
||||
{
|
||||
char cwd[PATH_MAX];
|
||||
char *trace = getenv("GIT_TRACE");
|
||||
|
||||
if (!trace || !strcmp(trace, "") ||
|
||||
!strcmp(trace, "0") || !strcasecmp(trace, "false"))
|
||||
return;
|
||||
|
||||
if (!getcwd(cwd, PATH_MAX))
|
||||
die("Unable to get current working directory");
|
||||
|
||||
trace_printf("setup: git_dir: %s\n", quote_crnl(get_git_dir()));
|
||||
trace_printf("setup: worktree: %s\n", quote_crnl(get_git_work_tree()));
|
||||
trace_printf("setup: cwd: %s\n", quote_crnl(cwd));
|
||||
trace_printf("setup: prefix: %s\n", quote_crnl(prefix));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user