Merge branch 'nd/export-worktree'

Running an aliased command from a subdirectory when the .git thing
in the working tree is a gitfile pointing elsewhere did not work.

* nd/export-worktree:
  setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR
This commit is contained in:
Junio C Hamano 2015-08-03 11:01:14 -07:00
commit a3f4eb1b40
2 changed files with 19 additions and 0 deletions

View File

@ -237,6 +237,8 @@ void set_git_work_tree(const char *new_work_tree)
}
git_work_tree_initialized = 1;
work_tree = xstrdup(real_path(new_work_tree));
if (setenv(GIT_WORK_TREE_ENVIRONMENT, work_tree, 1))
die("could not set GIT_WORK_TREE to '%s'", work_tree);
}
const char *get_git_work_tree(void)

View File

@ -99,4 +99,21 @@ test_expect_success 'check rev-list' '
test "$SHA" = "$(git rev-list HEAD)"
'
test_expect_success 'setup_git_dir twice in subdir' '
git init sgd &&
(
cd sgd &&
git config alias.lsfi ls-files &&
mv .git .realgit &&
echo "gitdir: .realgit" >.git &&
mkdir subdir &&
cd subdir &&
>foo &&
git add foo &&
git lsfi >actual &&
echo foo >expected &&
test_cmp expected actual
)
'
test_done