summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2016-04-14 18:57:46 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2016-04-14 18:57:46 -0700
commit237e6db5c08b095d84d352206e6dcd332fbfca5a (patch)
treef08b974058b1bd1a0ef8ddb09f1065806a205796 /builtin
parentMerge branch 'jk/getwholeline-getdelim-empty' into maint (diff)
parentuse setup_git_directory() in test-* programs (diff)
downloadtgif-237e6db5c08b095d84d352206e6dcd332fbfca5a.tar.xz
Merge branch 'jk/startup-info' into maint
The startup_info data, which records if we are working inside a repository (among other things), are now uniformly available to Git subcommand implementations, and Git avoids attempting to touch references when we are not in a repository. * jk/startup-info: use setup_git_directory() in test-* programs grep: turn off gitlink detection for --no-index mailmap: do not resolve blobs in a non-repository remote: don't resolve HEAD in non-repository setup: set startup_info->have_repository more reliably setup: make startup_info available everywhere
Diffstat (limited to 'builtin')
-rw-r--r--builtin/grep.c6
-rw-r--r--builtin/init-db.c1
2 files changed, 5 insertions, 2 deletions
diff --git a/builtin/grep.c b/builtin/grep.c
index aa7435f380..111b6f6cf1 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -522,12 +522,14 @@ static int grep_objects(struct grep_opt *opt, const struct pathspec *pathspec,
}
static int grep_directory(struct grep_opt *opt, const struct pathspec *pathspec,
- int exc_std)
+ int exc_std, int use_index)
{
struct dir_struct dir;
int i, hit = 0;
memset(&dir, 0, sizeof(dir));
+ if (!use_index)
+ dir.flags |= DIR_NO_GITLINKS;
if (exc_std)
setup_standard_excludes(&dir);
@@ -902,7 +904,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
int use_exclude = (opt_exclude < 0) ? use_index : !!opt_exclude;
if (list.nr)
die(_("--no-index or --untracked cannot be used with revs."));
- hit = grep_directory(&opt, &pathspec, use_exclude);
+ hit = grep_directory(&opt, &pathspec, use_exclude, use_index);
} else if (0 <= opt_exclude) {
die(_("--[no-]exclude-standard cannot be used for tracked contents."));
} else if (!list.nr) {
diff --git a/builtin/init-db.c b/builtin/init-db.c
index 6223b7d46a..da531f6b76 100644
--- a/builtin/init-db.c
+++ b/builtin/init-db.c
@@ -322,6 +322,7 @@ int set_git_dir_init(const char *git_dir, const char *real_git_dir,
set_git_dir(real_path(git_dir));
git_link = NULL;
}
+ startup_info->have_repository = 1;
return 0;
}