summaryrefslogtreecommitdiff
path: root/builtin-log.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@osdl.org>2006-07-28 21:21:48 -0700
committerJunio C Hamano <junkio@cox.net>2006-07-28 22:03:06 -0700
commitdb6296a566eb1a8007a84330a911b38055720743 (patch)
treeb37108730d738e64c27311785598a55746c50081 /builtin-log.c
parent818f477c40fee62ab8ea5b493c51bb357f38957c (diff)
downloadgit-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.c18
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;