Browse Source

Merge branch 'sp/ignorecase'

* sp/ignorecase:
  t0050: Fix merge test on case sensitive file systems
  t0050: Add test for case insensitive add
  t0050: Set core.ignorecase case to activate case insensitivity
  t0050: Test autodetect core.ignorecase
  git-init: autodetect core.ignorecase
maint
Junio C Hamano 17 years ago
parent
commit
6aad47dec7
  1. 8
      builtin-init-db.c
  2. 29
      t/t0050-filesystem.sh

8
builtin-init-db.c

@ -255,8 +255,8 @@ static int create_default_files(const char *git_dir, const char *template_path)
git_config_set("core.worktree", work_tree); git_config_set("core.worktree", work_tree);
} }


/* Check if symlink is supported in the work tree */
if (!reinit) { if (!reinit) {
/* Check if symlink is supported in the work tree */
path[len] = 0; path[len] = 0;
strcpy(path + len, "tXXXXXX"); strcpy(path + len, "tXXXXXX");
if (!close(xmkstemp(path)) && if (!close(xmkstemp(path)) &&
@ -267,6 +267,12 @@ static int create_default_files(const char *git_dir, const char *template_path)
unlink(path); /* good */ unlink(path); /* good */
else else
git_config_set("core.symlinks", "false"); git_config_set("core.symlinks", "false");

/* Check if the filesystem is case-insensitive */
path[len] = 0;
strcpy(path + len, "CoNfIg");
if (!access(path, F_OK))
git_config_set("core.ignorecase", "true");
} }


return reinit; return reinit;

29
t/t0050-filesystem.sh

@ -7,6 +7,7 @@ test_description='Various filesystem issues'
auml=`printf '\xc3\xa4'` auml=`printf '\xc3\xa4'`
aumlcdiar=`printf '\x61\xcc\x88'` aumlcdiar=`printf '\x61\xcc\x88'`


case_insensitive=
test_expect_success 'see if we expect ' ' test_expect_success 'see if we expect ' '


test_case=test_expect_success test_case=test_expect_success
@ -17,6 +18,7 @@ test_expect_success 'see if we expect ' '
if test "$(cat junk/CamelCase)" != good if test "$(cat junk/CamelCase)" != good
then then
test_case=test_expect_failure test_case=test_expect_failure
case_insensitive=t
say "will test on a case insensitive filesystem" say "will test on a case insensitive filesystem"
fi && fi &&
rm -fr junk && rm -fr junk &&
@ -32,8 +34,23 @@ test_expect_success 'see if we expect ' '
rm -fr junk rm -fr junk
' '


if test "$case_insensitive"
then
test_expect_success "detection of case insensitive filesystem during repo init" '

test $(git config --bool core.ignorecase) = true
'
else
test_expect_success "detection of case insensitive filesystem during repo init" '

! git config --bool core.ignorecase >/dev/null ||
test $(git config --bool core.ignorecase) = false
'
fi

test_expect_success "setup case tests" ' test_expect_success "setup case tests" '


git config core.ignorecase true &&
touch camelcase && touch camelcase &&
git add camelcase && git add camelcase &&
git commit -m "initial" && git commit -m "initial" &&
@ -55,11 +72,23 @@ $test_case 'rename (case change)' '


$test_case 'merge (case change)' ' $test_case 'merge (case change)' '


rm -f CamelCase &&
rm -f camelcase &&
git reset --hard initial && git reset --hard initial &&
git merge topic git merge topic


' '


$test_case 'add (with different case)' '

git reset --hard initial &&
rm camelcase &&
echo 1 >CamelCase &&
git add CamelCase &&
test $(git-ls-files | grep -i camelcase | wc -l) = 1

'

test_expect_success "setup unicode normalization tests" ' test_expect_success "setup unicode normalization tests" '


test_create_repo unicode && test_create_repo unicode &&

Loading…
Cancel
Save