Sync with Git 2.37.5
This commit is contained in:
@ -376,4 +376,63 @@ test_expect_success SYMLINKS 'symlinks not respected in-tree' '
|
||||
test_i18ngrep "unable to access.*gitattributes" err
|
||||
'
|
||||
|
||||
test_expect_success 'large attributes line ignored in tree' '
|
||||
test_when_finished "rm .gitattributes" &&
|
||||
printf "path %02043d" 1 >.gitattributes &&
|
||||
git check-attr --all path >actual 2>err &&
|
||||
echo "warning: ignoring overly long attributes line 1" >expect &&
|
||||
test_cmp expect err &&
|
||||
test_must_be_empty actual
|
||||
'
|
||||
|
||||
test_expect_success 'large attributes line ignores trailing content in tree' '
|
||||
test_when_finished "rm .gitattributes" &&
|
||||
# older versions of Git broke lines at 2048 bytes; the 2045 bytes
|
||||
# of 0-padding here is accounting for the three bytes of "a 1", which
|
||||
# would knock "trailing" to the "next" line, where it would be
|
||||
# erroneously parsed.
|
||||
printf "a %02045dtrailing attribute\n" 1 >.gitattributes &&
|
||||
git check-attr --all trailing >actual 2>err &&
|
||||
echo "warning: ignoring overly long attributes line 1" >expect &&
|
||||
test_cmp expect err &&
|
||||
test_must_be_empty actual
|
||||
'
|
||||
|
||||
test_expect_success EXPENSIVE 'large attributes file ignored in tree' '
|
||||
test_when_finished "rm .gitattributes" &&
|
||||
dd if=/dev/zero of=.gitattributes bs=101M count=1 2>/dev/null &&
|
||||
git check-attr --all path >/dev/null 2>err &&
|
||||
echo "warning: ignoring overly large gitattributes file ${SQ}.gitattributes${SQ}" >expect &&
|
||||
test_cmp expect err
|
||||
'
|
||||
|
||||
test_expect_success 'large attributes line ignored in index' '
|
||||
test_when_finished "git update-index --remove .gitattributes" &&
|
||||
blob=$(printf "path %02043d" 1 | git hash-object -w --stdin) &&
|
||||
git update-index --add --cacheinfo 100644,$blob,.gitattributes &&
|
||||
git check-attr --cached --all path >actual 2>err &&
|
||||
echo "warning: ignoring overly long attributes line 1" >expect &&
|
||||
test_cmp expect err &&
|
||||
test_must_be_empty actual
|
||||
'
|
||||
|
||||
test_expect_success 'large attributes line ignores trailing content in index' '
|
||||
test_when_finished "git update-index --remove .gitattributes" &&
|
||||
blob=$(printf "a %02045dtrailing attribute\n" 1 | git hash-object -w --stdin) &&
|
||||
git update-index --add --cacheinfo 100644,$blob,.gitattributes &&
|
||||
git check-attr --cached --all trailing >actual 2>err &&
|
||||
echo "warning: ignoring overly long attributes line 1" >expect &&
|
||||
test_cmp expect err &&
|
||||
test_must_be_empty actual
|
||||
'
|
||||
|
||||
test_expect_success EXPENSIVE 'large attributes file ignored in index' '
|
||||
test_when_finished "git update-index --remove .gitattributes" &&
|
||||
blob=$(dd if=/dev/zero bs=101M count=1 2>/dev/null | git hash-object -w --stdin) &&
|
||||
git update-index --add --cacheinfo 100644,$blob,.gitattributes &&
|
||||
git check-attr --cached --all path >/dev/null 2>err &&
|
||||
echo "warning: ignoring overly large gitattributes blob ${SQ}.gitattributes${SQ}" >expect &&
|
||||
test_cmp expect err
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Reference in New Issue
Block a user