diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-08-19 14:41:30 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-08-19 14:41:30 -0700 |
commit | 25a294e44db1c479e8abe2449f71279e6511ea32 (patch) | |
tree | b77ff79cf66660d1db638d02135e982f1bf01999 | |
parent | Merge branch 'mh/fast-import-optimize-current-from' into maint (diff) | |
parent | setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR (diff) | |
download | tgif-25a294e44db1c479e8abe2449f71279e6511ea32.tar.xz |
Merge branch 'nd/export-worktree' into maint
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
-rw-r--r-- | environment.c | 2 | ||||
-rwxr-xr-x | t/t0002-gitfile.sh | 17 |
2 files changed, 19 insertions, 0 deletions
diff --git a/environment.c b/environment.c index 61c685b8d9..03cf5f67a6 100644 --- a/environment.c +++ b/environment.c @@ -231,6 +231,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) diff --git a/t/t0002-gitfile.sh b/t/t0002-gitfile.sh index 37e9396e5d..9393322c3e 100755 --- a/t/t0002-gitfile.sh +++ b/t/t0002-gitfile.sh @@ -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 |