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
This commit is contained in:
Junio C Hamano
2016-04-14 18:57:46 -07:00
13 changed files with 54 additions and 26 deletions

View File

@ -166,11 +166,6 @@ test_expect_success 'relative path when cwd is outside worktree' '
grep "relative path syntax can.t be used outside working tree." error
'
test_expect_success 'relative path when startup_info is NULL' '
test_must_fail test-match-trees HEAD:./file.txt HEAD:./file.txt 2>error &&
grep "BUG: startup_info struct is not initialized." error
'
test_expect_success '<commit>:file correctly diagnosed after a pathname' '
test_must_fail git rev-parse file.txt HEAD:file.txt 1>actual 2>error &&
test_i18ngrep ! "exists on disk" error &&

View File

@ -905,6 +905,33 @@ test_expect_success 'inside git repository but with --no-index' '
)
'
test_expect_success 'grep --no-index descends into repos, but not .git' '
rm -fr non &&
mkdir -p non/git &&
(
GIT_CEILING_DIRECTORIES="$(pwd)/non" &&
export GIT_CEILING_DIRECTORIES &&
cd non/git &&
echo magic >file &&
git init repo &&
(
cd repo &&
echo magic >file &&
git add file &&
git commit -m foo &&
echo magic >.git/file
) &&
cat >expect <<-\EOF &&
file
repo/file
EOF
git grep -l --no-index magic >actual &&
test_cmp expect actual
)
'
test_expect_success 'setup double-dash tests' '
cat >double-dash <<EOF &&
--