Git 2.23
[gitweb.git] / t / t9129-git-svn-i18n-commitencoding.sh
index 938b7fe4b4027e2e74da6f816a43811cdf902204..2c213ae65405ecc5253a01369ce4b76f96272f10 100755 (executable)
@@ -7,29 +7,40 @@ test_description='git svn honors i18n.commitEncoding in config'
 . ./lib-git-svn.sh
 
 compare_git_head_with () {
-       nr=`wc -l < "$1"`
+       nr=$(wc -l < "$1")
        a=7
        b=$(($a + $nr - 1))
        git cat-file commit HEAD | sed -ne "$a,${b}p" >current &&
        test_cmp current "$1"
 }
 
+prepare_a_utf8_locale
+
 compare_svn_head_with () {
-       LC_ALL=en_US.UTF-8 svn log --limit 1 `git svn info --url` | \
-               sed -e 1,3d -e "/^-\{1,\}\$/d" >current &&
+       # extract just the log message and strip out committer info.
+       # don't use --limit here since svn 1.1.x doesn't have it,
+       LC_ALL="$a_utf8_locale" svn log $(git svn info --url) | perl -w -e '
+               use bytes;
+               $/ = ("-"x72) . "\n";
+               my @x = <STDIN>;
+               @x = split(/\n/, $x[1]);
+               splice(@x, 0, 2);
+               $x[-1] = "";
+               print join("\n", @x);
+       ' > current &&
        test_cmp current "$1"
 }
 
-for H in ISO-8859-1 EUCJP ISO-2022-JP
+for H in ISO8859-1 eucJP ISO-2022-JP
 do
        test_expect_success "$H setup" '
                mkdir $H &&
-               svn import -m "$H test" $H "$svnrepo"/$H &&
+               svn_cmd import -m "$H test" $H "$svnrepo"/$H &&
                git svn clone "$svnrepo"/$H $H
        '
 done
 
-for H in ISO-8859-1 EUCJP ISO-2022-JP
+for H in ISO8859-1 eucJP ISO-2022-JP
 do
        test_expect_success "$H commit on git side" '
        (
@@ -40,13 +51,13 @@ do
                git add F &&
                git commit -a -F "$TEST_DIRECTORY"/t3900/$H.txt &&
                E=$(git cat-file commit HEAD | sed -ne "s/^encoding //p") &&
-               test "z$E" = "z$H"
+               test "z$E" = "z$H" &&
                compare_git_head_with "$TEST_DIRECTORY"/t3900/$H.txt
        )
        '
 done
 
-for H in ISO-8859-1 EUCJP ISO-2022-JP
+for H in ISO8859-1 eucJP ISO-2022-JP
 do
        test_expect_success "$H dcommit to svn" '
        (
@@ -60,20 +71,20 @@ do
        '
 done
 
-test_expect_success 'ISO-8859-1 should match UTF-8 in svn' '
-(
-       cd ISO-8859-1 &&
-       compare_svn_head_with "$TEST_DIRECTORY"/t3900/1-UTF-8.txt
-)
+test_expect_success UTF8 'ISO-8859-1 should match UTF-8 in svn' '
+       (
+               cd ISO8859-1 &&
+               compare_svn_head_with "$TEST_DIRECTORY"/t3900/1-UTF-8.txt
+       )
 '
 
-for H in EUCJP ISO-2022-JP
+for H in eucJP ISO-2022-JP
 do
-       test_expect_success '$H should match UTF-8 in svn' '
-       (
-               cd $H &&
-               compare_svn_head_with "$TEST_DIRECTORY"/t3900/2-UTF-8.txt
-       )
+       test_expect_success UTF8 "$H should match UTF-8 in svn" '
+               (
+                       cd $H &&
+                       compare_svn_head_with "$TEST_DIRECTORY"/t3900/2-UTF-8.txt
+               )
        '
 done