log and diff family: honor config even from subdirectories
There currently is an unfortunate circular dependency between what init_revisions (the command line revision specification parser) does and setting up the log and diff options. The function uses setup_git_directory() to find the root of the project relative to the current directory and calls diff_setup() to prepare diff generation. However, some of the things that diff_setup() does needs to depend on the configuration variable, which needs to be read after setup_git_directory() is called. This patch is a low impact workaround. It first lets init_revisions() to run and do its thing, then uses git_config() and diff_setup() after it returns, so that configuration variables that affects the diff operation can be used from subdirectories. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
@ -18,8 +18,8 @@ int cmd_diff_files(int argc, const char **argv, char **envp)
|
||||
struct rev_info rev;
|
||||
int silent = 0;
|
||||
|
||||
git_config(git_default_config); /* no "diff" UI options */
|
||||
init_revisions(&rev);
|
||||
git_config(git_default_config); /* no "diff" UI options */
|
||||
rev.abbrev = 0;
|
||||
|
||||
argc = setup_revisions(argc, argv, &rev, NULL);
|
||||
|
||||
Reference in New Issue
Block a user