Merge branch 'po/git-help-on-git-itself'
[gitweb.git] / t / t9300-fast-import.sh
index 40fe7e49767ac4e0bbe5686413ff2b667171747a..141b7fa35e74b860d91ea7cdabf48730442ed635 100755 (executable)
@@ -1558,7 +1558,7 @@ test_expect_success 'O: blank lines not necessary after other commands' '
        INPUT_END
 
        git fast-import <input &&
-       test 8 = $(find .git/objects/pack -type f | wc -l) &&
+       test 8 = $(find .git/objects/pack -type f | grep -v multi-pack-index | wc -l) &&
        test $(git rev-parse refs/tags/O3-2nd) = $(git rev-parse O3^) &&
        git log --reverse --pretty=oneline O3 | sed s/^.*z// >actual &&
        test_cmp expect actual
@@ -3262,4 +3262,61 @@ test_expect_success PIPE 'V: checkpoint updates tags after tag' '
        background_import_still_running
 '
 
+###
+### series W (get-mark and empty orphan commits)
+###
+
+cat >>W-input <<-W_INPUT_END
+       commit refs/heads/W-branch
+       mark :1
+       author Full Name <user@company.tld> 1000000000 +0100
+       committer Full Name <user@company.tld> 1000000000 +0100
+       data 27
+       Intentionally empty commit
+       LFsget-mark :1
+       W_INPUT_END
+
+test_expect_success !MINGW 'W: get-mark & empty orphan commit with no newlines' '
+       sed -e s/LFs// W-input | tr L "\n" | git fast-import
+'
+
+test_expect_success !MINGW 'W: get-mark & empty orphan commit with one newline' '
+       sed -e s/LFs/L/ W-input | tr L "\n" | git fast-import
+'
+
+test_expect_success !MINGW 'W: get-mark & empty orphan commit with ugly second newline' '
+       # Technically, this should fail as it has too many linefeeds
+       # according to the grammar in fast-import.txt.  But, for whatever
+       # reason, it works.  Since using the correct number of newlines
+       # does not work with older (pre-2.22) versions of git, allow apps
+       # that used this second-newline workaround to keep working by
+       # checking it with this test...
+       sed -e s/LFs/LL/ W-input | tr L "\n" | git fast-import
+'
+
+test_expect_success !MINGW 'W: get-mark & empty orphan commit with erroneous third newline' '
+       # ...but do NOT allow more empty lines than that (see previous test).
+       sed -e s/LFs/LLL/ W-input | tr L "\n" | test_must_fail git fast-import
+'
+
+###
+### series X (other new features)
+###
+
+test_expect_success 'X: handling encoding' '
+       test_tick &&
+       cat >input <<-INPUT_END &&
+       commit refs/heads/encoding
+       committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE
+       encoding iso-8859-7
+       data <<COMMIT
+       INPUT_END
+
+       printf "Pi: \360\nCOMMIT\n" >>input &&
+
+       git fast-import <input &&
+       git cat-file -p encoding | grep $(printf "\360") &&
+       git log -1 --format=%B encoding | grep $(printf "\317\200")
+'
+
 test_done