Skip to content
This repository was archived by the owner on Nov 9, 2017. It is now read-only.

Commit cdbf623

Browse files
committed
check-attr: move to the top of working tree when in non-bare repository
Lasse Makholm noticed that running "git check-attr" from a place totally unrelated to $GIT_DIR and $GIT_WORK_TREE does not give expected results. I think it is because the command does not say it wants to call setup_work_tree(). We still need to support use cases where only a bare repository is involved, so unconditionally requiring a working tree would not work well. Instead, make a call only in a non-bare repository. We may want to see if we want to do a similar fix in the opposite direction to check-ignore. The command unconditionally requires a working tree, but it should be usable in a bare repository just like check-attr attempts to be. Signed-off-by: Junio C Hamano <[email protected]>
1 parent c4a7bce commit cdbf623

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

builtin/check-attr.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ int cmd_check_attr(int argc, const char **argv, const char *prefix)
9494
struct git_attr_check *check;
9595
int cnt, i, doubledash, filei;
9696

97+
if (!is_bare_repository())
98+
setup_work_tree();
99+
97100
git_config(git_default_config, NULL);
98101

99102
argc = parse_options(argc, argv, prefix, check_attr_options,

t/t0003-attributes.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,16 @@ test_expect_success 'root subdir attribute test' '
196196
attr_check subdir/a/i unspecified
197197
'
198198

199+
test_expect_success 'using --git-dir and --work-tree' '
200+
mkdir unreal real &&
201+
git init real &&
202+
echo "file test=in-real" >real/.gitattributes &&
203+
(
204+
cd unreal &&
205+
attr_check file in-real "--git-dir ../real/.git --work-tree ../real"
206+
)
207+
'
208+
199209
test_expect_success 'setup bare' '
200210
git clone --bare . bare.git
201211
'

0 commit comments

Comments
 (0)