summaryrefslogtreecommitdiff
path: root/system/git
diff options
context:
space:
mode:
Diffstat (limited to 'system/git')
-rw-r--r--system/git/APKBUILD8
-rw-r--r--system/git/dont-test-other-encodings.patch243
2 files changed, 247 insertions, 4 deletions
diff --git a/system/git/APKBUILD b/system/git/APKBUILD
index 7fdb90fff..d3b64080d 100644
--- a/system/git/APKBUILD
+++ b/system/git/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=git
-pkgver=2.17.1
+pkgver=2.18.0
pkgrel=0
pkgdesc="A distributed version control system"
url="https://www.git-scm.com/"
@@ -60,7 +60,7 @@ build() {
check() {
cd "$builddir"
- make prefix=/usr DESTDIR="$pkgdir" test
+ make prefix=/usr DESTDIR="$pkgdir" -j1 test
}
package() {
@@ -167,8 +167,8 @@ subtree_doc() {
gzip -9 "$subpkgdir"/usr/share/man/man1/git-subtree.1
}
-sha512sums="77c27569d40fbae1842130baa0cdda674a02e384631bd8fb1f2ddf67ce372dd4903b2ce6b4283a4ae506cdedd5daa55baa2afe6a6689528511e24e4beb864960 git-2.17.1.tar.xz
+sha512sums="db19363c9c2042248322d49874a27c0614acfb912183725e5d4f0331d6b44cef66a9a7da6a49bd4a17e5d86d30c5fed6bef7527f386494184595a433c4060e46 git-2.18.0.tar.xz
85767b5e03137008d6a96199e769e3979f75d83603ac8cb13a3481a915005637409a4fd94e0720da2ec6cd1124f35eba7cf20109a94816c4b4898a81fbc46bd2 bb-tar.patch
-135645fa57c41c50bec6d09f7d3c92f26d30334b5f342d50942c24e0dd11106e40c36b11346c9e6cd69e98b7a9ebeec80e4e4f1506ef689f39d7ef4539727dae dont-test-other-encodings.patch
+1e1cf54be8db0b7a63de2267f3cb0359070a50dcd940e5329a126f1d9f26b2596b93f2b836adc953e4d5b148bbba2eb8234dfeb2929ac3c1e3162507781141f6 dont-test-other-encodings.patch
89528cdd14c51fd568aa61cf6c5eae08ea0844e59f9af9292da5fc6c268261f4166017d002d494400945e248df6b844e2f9f9cd2d9345d516983f5a110e4c42a git-daemon.initd
fbf1f425206a76e2a8f82342537ed939ff7e623d644c086ca2ced5f69b36734695f9f80ebda1728f75a94d6cd2fcb71bf845b64239368caab418e4d368c141ec git-daemon.confd"
diff --git a/system/git/dont-test-other-encodings.patch b/system/git/dont-test-other-encodings.patch
index 98949bc1b..54a4012fe 100644
--- a/system/git/dont-test-other-encodings.patch
+++ b/system/git/dont-test-other-encodings.patch
@@ -191,3 +191,246 @@ We can't support Japanese people using musl
cat >expected <<EOF
author $UTF8_NAME
summary $UTF8_MSG
+--- git-2.18.0/t/t0028-working-tree-encoding.sh.old 2018-06-21 17:18:50.000000000 +0000
++++ git-2.18.0/t/t0028-working-tree-encoding.sh 2018-09-05 17:42:14.650000000 +0000
+@@ -6,240 +6,4 @@
+
+ GIT_TRACE_WORKING_TREE_ENCODING=1 && export GIT_TRACE_WORKING_TREE_ENCODING
+
+-test_expect_success 'setup test files' '
+- git config core.eol lf &&
+-
+- text="hallo there!\ncan you read me?" &&
+- echo "*.utf16 text working-tree-encoding=utf-16" >.gitattributes &&
+- printf "$text" >test.utf8.raw &&
+- printf "$text" | iconv -f UTF-8 -t UTF-16 >test.utf16.raw &&
+- printf "$text" | iconv -f UTF-8 -t UTF-32 >test.utf32.raw &&
+-
+- # Line ending tests
+- printf "one\ntwo\nthree\n" >lf.utf8.raw &&
+- printf "one\r\ntwo\r\nthree\r\n" >crlf.utf8.raw &&
+-
+- # BOM tests
+- printf "\0a\0b\0c" >nobom.utf16be.raw &&
+- printf "a\0b\0c\0" >nobom.utf16le.raw &&
+- printf "\376\777\0a\0b\0c" >bebom.utf16be.raw &&
+- printf "\777\376a\0b\0c\0" >lebom.utf16le.raw &&
+- printf "\0\0\0a\0\0\0b\0\0\0c" >nobom.utf32be.raw &&
+- printf "a\0\0\0b\0\0\0c\0\0\0" >nobom.utf32le.raw &&
+- printf "\0\0\376\777\0\0\0a\0\0\0b\0\0\0c" >bebom.utf32be.raw &&
+- printf "\777\376\0\0a\0\0\0b\0\0\0c\0\0\0" >lebom.utf32le.raw &&
+-
+- # Add only UTF-16 file, we will add the UTF-32 file later
+- cp test.utf16.raw test.utf16 &&
+- cp test.utf32.raw test.utf32 &&
+- git add .gitattributes test.utf16 &&
+- git commit -m initial
+-'
+-
+-test_expect_success 'ensure UTF-8 is stored in Git' '
+- test_when_finished "rm -f test.utf16.git" &&
+-
+- git cat-file -p :test.utf16 >test.utf16.git &&
+- test_cmp_bin test.utf8.raw test.utf16.git
+-'
+-
+-test_expect_success 're-encode to UTF-16 on checkout' '
+- test_when_finished "rm -f test.utf16.raw" &&
+-
+- rm test.utf16 &&
+- git checkout test.utf16 &&
+- test_cmp_bin test.utf16.raw test.utf16
+-'
+-
+-test_expect_success 'check $GIT_DIR/info/attributes support' '
+- test_when_finished "rm -f test.utf32.git" &&
+- test_when_finished "git reset --hard HEAD" &&
+-
+- echo "*.utf32 text working-tree-encoding=utf-32" >.git/info/attributes &&
+- git add test.utf32 &&
+-
+- git cat-file -p :test.utf32 >test.utf32.git &&
+- test_cmp_bin test.utf8.raw test.utf32.git
+-'
+-
+-for i in 16 32
+-do
+- test_expect_success "check prohibited UTF-${i} BOM" '
+- test_when_finished "git reset --hard HEAD" &&
+-
+- echo "*.utf${i}be text working-tree-encoding=utf-${i}be" >>.gitattributes &&
+- echo "*.utf${i}le text working-tree-encoding=utf-${i}LE" >>.gitattributes &&
+-
+- # Here we add a UTF-16 (resp. UTF-32) files with BOM (big/little-endian)
+- # but we tell Git to treat it as UTF-16BE/UTF-16LE (resp. UTF-32).
+- # In these cases the BOM is prohibited.
+- cp bebom.utf${i}be.raw bebom.utf${i}be &&
+- test_must_fail git add bebom.utf${i}be 2>err.out &&
+- test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out &&
+- test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out &&
+-
+- cp lebom.utf${i}le.raw lebom.utf${i}be &&
+- test_must_fail git add lebom.utf${i}be 2>err.out &&
+- test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out &&
+- test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out &&
+-
+- cp bebom.utf${i}be.raw bebom.utf${i}le &&
+- test_must_fail git add bebom.utf${i}le 2>err.out &&
+- test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out &&
+- test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out &&
+-
+- cp lebom.utf${i}le.raw lebom.utf${i}le &&
+- test_must_fail git add lebom.utf${i}le 2>err.out &&
+- test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out &&
+- test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out
+- '
+-
+- test_expect_success "check required UTF-${i} BOM" '
+- test_when_finished "git reset --hard HEAD" &&
+-
+- echo "*.utf${i} text working-tree-encoding=utf-${i}" >>.gitattributes &&
+-
+- cp nobom.utf${i}be.raw nobom.utf${i} &&
+- test_must_fail git add nobom.utf${i} 2>err.out &&
+- test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out &&
+- test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out &&
+-
+- cp nobom.utf${i}le.raw nobom.utf${i} &&
+- test_must_fail git add nobom.utf${i} 2>err.out &&
+- test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out &&
+- test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out
+- '
+-
+- test_expect_success "eol conversion for UTF-${i} encoded files on checkout" '
+- test_when_finished "rm -f crlf.utf${i}.raw lf.utf${i}.raw" &&
+- test_when_finished "git reset --hard HEAD^" &&
+-
+- cat lf.utf8.raw | iconv -f UTF-8 -t UTF-${i} >lf.utf${i}.raw &&
+- cat crlf.utf8.raw | iconv -f UTF-8 -t UTF-${i} >crlf.utf${i}.raw &&
+- cp crlf.utf${i}.raw eol.utf${i} &&
+-
+- cat >expectIndexLF <<-EOF &&
+- i/lf w/-text attr/text eol.utf${i}
+- EOF
+-
+- git add eol.utf${i} &&
+- git commit -m eol &&
+-
+- # UTF-${i} with CRLF (Windows line endings)
+- rm eol.utf${i} &&
+- git -c core.eol=crlf checkout eol.utf${i} &&
+- test_cmp_bin crlf.utf${i}.raw eol.utf${i} &&
+-
+- # Although the file has CRLF in the working tree,
+- # ensure LF in the index
+- git ls-files --eol eol.utf${i} >actual &&
+- test_cmp expectIndexLF actual &&
+-
+- # UTF-${i} with LF (Unix line endings)
+- rm eol.utf${i} &&
+- git -c core.eol=lf checkout eol.utf${i} &&
+- test_cmp_bin lf.utf${i}.raw eol.utf${i} &&
+-
+- # The file LF in the working tree, ensure LF in the index
+- git ls-files --eol eol.utf${i} >actual &&
+- test_cmp expectIndexLF actual
+- '
+-done
+-
+-test_expect_success 'check unsupported encodings' '
+- test_when_finished "git reset --hard HEAD" &&
+-
+- echo "*.set text working-tree-encoding" >.gitattributes &&
+- printf "set" >t.set &&
+- test_must_fail git add t.set 2>err.out &&
+- test_i18ngrep "true/false are no valid working-tree-encodings" err.out &&
+-
+- echo "*.unset text -working-tree-encoding" >.gitattributes &&
+- printf "unset" >t.unset &&
+- git add t.unset &&
+-
+- echo "*.empty text working-tree-encoding=" >.gitattributes &&
+- printf "empty" >t.empty &&
+- git add t.empty &&
+-
+- echo "*.garbage text working-tree-encoding=garbage" >.gitattributes &&
+- printf "garbage" >t.garbage &&
+- test_must_fail git add t.garbage 2>err.out &&
+- test_i18ngrep "failed to encode" err.out
+-'
+-
+-test_expect_success 'error if encoding round trip is not the same during refresh' '
+- BEFORE_STATE=$(git rev-parse HEAD) &&
+- test_when_finished "git reset --hard $BEFORE_STATE" &&
+-
+- # Add and commit a UTF-16 file but skip the "working-tree-encoding"
+- # filter. Consequently, the in-repo representation is UTF-16 and not
+- # UTF-8. This simulates a Git version that has no working tree encoding
+- # support.
+- echo "*.utf16le text working-tree-encoding=utf-16le" >.gitattributes &&
+- echo "hallo" >nonsense.utf16le &&
+- TEST_HASH=$(git hash-object --no-filters -w nonsense.utf16le) &&
+- git update-index --add --cacheinfo 100644 $TEST_HASH nonsense.utf16le &&
+- COMMIT=$(git commit-tree -p $(git rev-parse HEAD) -m "plain commit" $(git write-tree)) &&
+- git update-ref refs/heads/master $COMMIT &&
+-
+- test_must_fail git checkout HEAD^ 2>err.out &&
+- test_i18ngrep "error: .* overwritten by checkout:" err.out
+-'
+-
+-test_expect_success 'error if encoding garbage is already in Git' '
+- BEFORE_STATE=$(git rev-parse HEAD) &&
+- test_when_finished "git reset --hard $BEFORE_STATE" &&
+-
+- # Skip the UTF-16 filter for the added file
+- # This simulates a Git version that has no checkoutEncoding support
+- cp nobom.utf16be.raw nonsense.utf16 &&
+- TEST_HASH=$(git hash-object --no-filters -w nonsense.utf16) &&
+- git update-index --add --cacheinfo 100644 $TEST_HASH nonsense.utf16 &&
+- COMMIT=$(git commit-tree -p $(git rev-parse HEAD) -m "plain commit" $(git write-tree)) &&
+- git update-ref refs/heads/master $COMMIT &&
+-
+- git diff 2>err.out &&
+- test_i18ngrep "error: BOM is required" err.out
+-'
+-
+-test_expect_success 'check roundtrip encoding' '
+- test_when_finished "rm -f roundtrip.shift roundtrip.utf16" &&
+- test_when_finished "git reset --hard HEAD" &&
+-
+- text="hallo there!\nroundtrip test here!" &&
+- printf "$text" | iconv -f UTF-8 -t SHIFT-JIS >roundtrip.shift &&
+- printf "$text" | iconv -f UTF-8 -t UTF-16 >roundtrip.utf16 &&
+- echo "*.shift text working-tree-encoding=SHIFT-JIS" >>.gitattributes &&
+-
+- # SHIFT-JIS encoded files are round-trip checked by default...
+- GIT_TRACE=1 git add .gitattributes roundtrip.shift 2>&1 |
+- grep "Checking roundtrip encoding for SHIFT-JIS" &&
+- git reset &&
+-
+- # ... unless we overwrite the Git config!
+- ! GIT_TRACE=1 git -c core.checkRoundtripEncoding=garbage \
+- add .gitattributes roundtrip.shift 2>&1 |
+- grep "Checking roundtrip encoding for SHIFT-JIS" &&
+- git reset &&
+-
+- # UTF-16 encoded files should not be round-trip checked by default...
+- ! GIT_TRACE=1 git add roundtrip.utf16 2>&1 |
+- grep "Checking roundtrip encoding for UTF-16" &&
+- git reset &&
+-
+- # ... unless we tell Git to check it!
+- GIT_TRACE=1 git -c core.checkRoundtripEncoding="UTF-16, UTF-32" \
+- add roundtrip.utf16 2>&1 |
+- grep "Checking roundtrip encoding for utf-16" &&
+- git reset &&
+-
+- # ... unless we tell Git to check it!
+- # (here we also check that the casing of the encoding is irrelevant)
+- GIT_TRACE=1 git -c core.checkRoundtripEncoding="UTF-32, utf-16" \
+- add roundtrip.utf16 2>&1 |
+- grep "Checking roundtrip encoding for utf-16" &&
+- git reset
+-'
+-
+ test_done