git on Mac OS and precomposed unicode
[gitweb.git] / t / t9350-fast-export.sh
index 8c8e679468f4b191f93ca68a973d4d58fa1b72d2..b00196bd238f538f78ce421979e725ce501e84e1 100755 (executable)
@@ -26,7 +26,7 @@ test_expect_success 'setup' '
        test_tick &&
        git tag rein &&
        git checkout -b wer HEAD^ &&
-       echo lange > file2
+       echo lange > file2 &&
        test_tick &&
        git commit -m sitzt file2 &&
        test_tick &&
@@ -86,7 +86,7 @@ test_expect_success 'import/export-marks' '
        git checkout -b marks master &&
        git fast-export --export-marks=tmp-marks HEAD &&
        test -s tmp-marks &&
-       test $(wc -l < tmp-marks) -eq 3 &&
+       test_line_count = 3 tmp-marks &&
        test $(
                git fast-export --import-marks=tmp-marks\
                --export-marks=tmp-marks HEAD |
@@ -101,7 +101,7 @@ test_expect_success 'import/export-marks' '
                grep ^commit\  |
                wc -l) \
        -eq 1 &&
-       test $(wc -l < tmp-marks) -eq 4
+       test_line_count = 4 tmp-marks
 
 '
 
@@ -228,7 +228,7 @@ test_expect_success 'fast-export -C -C | fast-import' '
        mkdir new &&
        git --git-dir=new/.git init &&
        git fast-export -C -C --signed-tags=strip --all > output &&
-       grep "^C \"file6\" \"file7\"\$" output &&
+       grep "^C file6 file7\$" output &&
        cat output |
        (cd new &&
         git fast-import &&
@@ -414,4 +414,30 @@ test_expect_success SYMLINKS 'directory becomes symlink'        '
        (cd result && git show master:foo)
 '
 
+test_expect_success 'fast-export quotes pathnames' '
+       git init crazy-paths &&
+       (cd crazy-paths &&
+        blob=`echo foo | git hash-object -w --stdin` &&
+        git update-index --add \
+               --cacheinfo 100644 $blob "$(printf "path with\\nnewline")" \
+               --cacheinfo 100644 $blob "path with \"quote\"" \
+               --cacheinfo 100644 $blob "path with \\backslash" \
+               --cacheinfo 100644 $blob "path with space" &&
+        git commit -m addition &&
+        git ls-files -z -s | perl -0pe "s{\\t}{$&subdir/}" >index &&
+        git read-tree --empty &&
+        git update-index -z --index-info <index &&
+        git commit -m rename &&
+        git read-tree --empty &&
+        git commit -m deletion &&
+        git fast-export HEAD >export.out &&
+        git rev-list HEAD >expect &&
+        git init result &&
+        cd result &&
+        git fast-import <../export.out &&
+        git rev-list HEAD >actual &&
+        test_cmp ../expect actual
+       )
+'
+
 test_done