summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-04-15 01:57:46 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-04-15 01:57:46 (GMT)
commit237e6db5c08b095d84d352206e6dcd332fbfca5a (patch)
treef08b974058b1bd1a0ef8ddb09f1065806a205796 /builtin
parentf55f97cb3307f49e6b15d9f0145b6d3f00b22ff7 (diff)
parent11e6b3f6d544fd6b2914583749b90b29d1d8683d (diff)
downloadgit-237e6db5c08b095d84d352206e6dcd332fbfca5a.zip
git-237e6db5c08b095d84d352206e6dcd332fbfca5a.tar.gz
git-237e6db5c08b095d84d352206e6dcd332fbfca5a.tar.bz2
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 aa7435f..111b6f6 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 6223b7d..da531f6 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;
}