diff options
author | Linus Torvalds <torvalds@osdl.org> | 2006-07-28 21:21:48 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-07-28 22:03:06 -0700 |
commit | db6296a566eb1a8007a84330a911b38055720743 (patch) | |
tree | b37108730d738e64c27311785598a55746c50081 /builtin-log.c | |
parent | 818f477c40fee62ab8ea5b493c51bb357f38957c (diff) | |
download | git-db6296a566eb1a8007a84330a911b38055720743.tar.gz |
Call setup_git_directory() early
Any git command that expects to work in a subdirectory of a project, and
that reads the git config files (which is just about all of them) needs to
make sure that it does the "setup_git_directory()" call before it tries to
read the config file.
This means, among other things, that we need to move the call out of
"init_revisions()", and into the caller.
This does the mostly trivial conversion to do that.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'builtin-log.c')
-rw-r--r-- | builtin-log.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/builtin-log.c b/builtin-log.c index 88c835acba..52064cd178 100644 --- a/builtin-log.c +++ b/builtin-log.c @@ -48,10 +48,10 @@ static int cmd_log_walk(struct rev_info *rev) int cmd_whatchanged(int argc, const char **argv, char **envp) { struct rev_info rev; + const char *prefix = setup_git_directory(); - init_revisions(&rev); git_config(git_diff_ui_config); - diff_setup(&rev.diffopt); + init_revisions(&rev, prefix); rev.diff = 1; rev.diffopt.recursive = 1; rev.simplify_history = 0; @@ -64,10 +64,10 @@ int cmd_whatchanged(int argc, const char **argv, char **envp) int cmd_show(int argc, const char **argv, char **envp) { struct rev_info rev; + const char *prefix = setup_git_directory(); - init_revisions(&rev); git_config(git_diff_ui_config); - diff_setup(&rev.diffopt); + init_revisions(&rev, prefix); rev.diff = 1; rev.diffopt.recursive = 1; rev.combine_merges = 1; @@ -82,10 +82,10 @@ int cmd_show(int argc, const char **argv, char **envp) int cmd_log(int argc, const char **argv, char **envp) { struct rev_info rev; + const char *prefix = setup_git_directory(); - init_revisions(&rev); git_config(git_diff_ui_config); - diff_setup(&rev.diffopt); + init_revisions(&rev, prefix); rev.always_show_header = 1; cmd_log_init(argc, argv, envp, &rev); return cmd_log_walk(&rev); @@ -188,6 +188,7 @@ static void get_patch_ids(struct rev_info *rev, struct diff_options *options) struct object *o1, *o2; unsigned flags1, flags2; unsigned char sha1[20]; + const char *prefix = setup_git_directory(); if (rev->pending.nr != 2) die("Need exactly one range."); @@ -206,7 +207,7 @@ static void get_patch_ids(struct rev_info *rev, struct diff_options *options) die("diff_setup_done failed"); /* given a range a..b get all patch ids for b..a */ - init_revisions(&check_rev); + init_revisions(&check_rev, prefix); o1->flags ^= UNINTERESTING; o2->flags ^= UNINTERESTING; add_pending_object(&check_rev, o1, "o1"); @@ -260,9 +261,10 @@ int cmd_format_patch(int argc, const char **argv, char **envp) char *add_signoff = NULL; char message_id[1024]; char ref_message_id[1024]; + const char *prefix = setup_git_directory(); git_config(git_format_config); - init_revisions(&rev); + init_revisions(&rev, prefix); rev.commit_format = CMIT_FMT_EMAIL; rev.verbose_header = 1; rev.diff = 1; |