Browse Source

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
maint
Junio C Hamano 10 years ago
parent
commit
25a294e44d
  1. 2
      environment.c
  2. 17
      t/t0002-gitfile.sh

2
environment.c

@ -231,6 +231,8 @@ void set_git_work_tree(const char *new_work_tree) @@ -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)

17
t/t0002-gitfile.sh

@ -99,4 +99,21 @@ test_expect_success 'check rev-list' ' @@ -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

Loading…
Cancel
Save