nx8220 t # ./t9200-git-cvsexportcommit.sh not ok - 1 New file # mkdir A B C D E F && # echo hello1 >A/newfile1.txt && # echo hello2 >B/newfile2.txt && # cp "$TEST_DIRECTORY"/test9200a.png C/newfile3.png && # cp "$TEST_DIRECTORY"/test9200a.png D/newfile4.png && # git add A/newfile1.txt && # git add B/newfile2.txt && # git add C/newfile3.png && # git add D/newfile4.png && # git commit -a -m "Test: New file" && # id=$(git rev-list --max-count=1 HEAD) && # (cd "$CVSWORK" && # git cvsexportcommit -c $id && # check_entries A "newfile1.txt/1.1/" && # check_entries B "newfile2.txt/1.1/" && # check_entries C "newfile3.png/1.1/-kb" && # check_entries D "newfile4.png/1.1/-kb" && # test_cmp A/newfile1.txt ../A/newfile1.txt && # test_cmp B/newfile2.txt ../B/newfile2.txt && # test_cmp C/newfile3.png ../C/newfile3.png && # test_cmp D/newfile4.png ../D/newfile4.png # ) not ok - 2 Remove two files, add two and update two # echo Hello1 >>A/newfile1.txt && # rm -f B/newfile2.txt && # rm -f C/newfile3.png && # echo Hello5 >E/newfile5.txt && # cp "$TEST_DIRECTORY"/test9200b.png D/newfile4.png && # cp "$TEST_DIRECTORY"/test9200a.png F/newfile6.png && # git add E/newfile5.txt && # git add F/newfile6.png && # git commit -a -m "Test: Remove, add and update" && # id=$(git rev-list --max-count=1 HEAD) && # (cd "$CVSWORK" && # git cvsexportcommit -c $id && # check_entries A "newfile1.txt/1.2/" && # check_entries B "" && # check_entries C "" && # check_entries D "newfile4.png/1.2/-kb" && # check_entries E "newfile5.txt/1.1/" && # check_entries F "newfile6.png/1.1/-kb" && # test_cmp A/newfile1.txt ../A/newfile1.txt && # test_cmp D/newfile4.png ../D/newfile4.png && # test_cmp E/newfile5.txt ../E/newfile5.txt && # test_cmp F/newfile6.png ../F/newfile6.png # ) ok 3 - Fail to change binary more than one generation old not ok - 4 Remove only binary files # git reset --hard HEAD^^ && # rm -f D/newfile4.png && # git commit -a -m "test: remove only a binary file" && # id=$(git rev-list --max-count=1 HEAD) && # (cd "$CVSWORK" && # git cvsexportcommit -c $id && # check_entries A "newfile1.txt/1.2/" && # check_entries B "" && # check_entries C "" && # check_entries D "" && # check_entries E "newfile5.txt/1.1/" && # check_entries F "newfile6.png/1.1/-kb" && # test_cmp A/newfile1.txt ../A/newfile1.txt && # test_cmp E/newfile5.txt ../E/newfile5.txt && # test_cmp F/newfile6.png ../F/newfile6.png # ) not ok - 5 Remove only a text file # rm -f A/newfile1.txt && # git commit -a -m "test: remove only a binary file" && # id=$(git rev-list --max-count=1 HEAD) && # (cd "$CVSWORK" && # git cvsexportcommit -c $id && # check_entries A "" && # check_entries B "" && # check_entries C "" && # check_entries D "" && # check_entries E "newfile5.txt/1.1/" && # check_entries F "newfile6.png/1.1/-kb" && # test_cmp E/newfile5.txt ../E/newfile5.txt && # test_cmp F/newfile6.png ../F/newfile6.png # ) not ok - 6 New file with spaces in file name # mkdir "G g" && # echo ok then >"G g/with spaces.txt" && # git add "G g/with spaces.txt" && \ # cp "$TEST_DIRECTORY"/test9200a.png "G g/with spaces.png" && \ # git add "G g/with spaces.png" && # git commit -a -m "With spaces" && # id=$(git rev-list --max-count=1 HEAD) && # (cd "$CVSWORK" && # git cvsexportcommit -c $id && # check_entries "G g" "with spaces.png/1.1/-kb|with spaces.txt/1.1/" # ) not ok - 7 Update file with spaces in file name # echo Ok then >>"G g/with spaces.txt" && # cat "$TEST_DIRECTORY"/test9200a.png >>"G g/with spaces.png" && \ # git add "G g/with spaces.png" && # git commit -a -m "Update with spaces" && # id=$(git rev-list --max-count=1 HEAD) && # (cd "$CVSWORK" && # git cvsexportcommit -c $id # check_entries "G g" "with spaces.png/1.2/-kb|with spaces.txt/1.2/" # ) not ok - 8 File with non-ascii file name # mkdir -p Å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö && # echo Foo >Å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö/gårdetsågårdet.txt && # git add Å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö/gårdetsågårdet.txt && # cp "$TEST_DIRECTORY"/test9200a.png Å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö/gårdetsågårdet.png && # git add Å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö/gårdetsågårdet.png && # git commit -a -m "Går det så går det" && \ # id=$(git rev-list --max-count=1 HEAD) && # (cd "$CVSWORK" && # git cvsexportcommit -v -c $id && # check_entries \ # "Å/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/å/ä/ö" \ # "gårdetsågårdet.png/1.1/-kb|gårdetsågårdet.txt/1.1/" # ) ok 9 - Mismatching patch should fail ok 10 - Retain execute bit not ok - 11 -w option should work with relative GIT_DIR # # mkdir W && # echo foobar >W/file1.txt && # echo bazzle >W/file2.txt && # git add W/file1.txt && # git add W/file2.txt && # git commit -m "More updates" && # id=$(git rev-list --max-count=1 HEAD) && # (cd "$GIT_DIR" && # GIT_DIR=. git cvsexportcommit -w "$CVSWORK" -c $id && # check_entries "$CVSWORK/W" "file1.txt/1.1/|file2.txt/1.1/" && # test_cmp "$CVSWORK/W/file1.txt" ../W/file1.txt && # test_cmp "$CVSWORK/W/file2.txt" ../W/file2.txt # ) # not ok - 12 check files before directories # # # echo Notes > release-notes && # git add release-notes && # git commit -m "Add release notes" release-notes && # id=$(git rev-parse HEAD) && # git cvsexportcommit -w "$CVSWORK" -c $id && # # echo new > DS && # echo new > E/DS && # echo modified > release-notes && # git add DS E/DS release-notes && # git commit -m "Add two files with the same basename" && # id=$(git rev-parse HEAD) && # git cvsexportcommit -w "$CVSWORK" -c $id && # check_entries "$CVSWORK/E" "DS/1.1/|newfile5.txt/1.1/" && # check_entries "$CVSWORK" "DS/1.1/|release-notes/1.2/" && # test_cmp "$CVSWORK/DS" DS && # test_cmp "$CVSWORK/E/DS" E/DS && # test_cmp "$CVSWORK/release-notes" release-notes # # not ok - 13 re-commit a removed filename which remains in CVS attic # # # (cd "$CVSWORK" && # echo >attic_gremlin && # cvs -Q add attic_gremlin && # cvs -Q ci -m "added attic_gremlin" && # rm attic_gremlin && # cvs -Q rm attic_gremlin && # cvs -Q ci -m "removed attic_gremlin") && # # echo > attic_gremlin && # git add attic_gremlin && # git commit -m "Added attic_gremlin" && # git cvsexportcommit -w "$CVSWORK" -c HEAD && # (cd "$CVSWORK"; cvs -Q update -d) && # test -f "$CVSWORK/attic_gremlin" # not ok - 14 commit a file with leading spaces in the name # # # echo space > " space" && # git add " space" && # git commit -m "Add a file with a leading space" && # id=$(git rev-parse HEAD) && # git cvsexportcommit -w "$CVSWORK" -c $id && # check_entries "$CVSWORK" " space/1.1/|DS/1.1/|attic_gremlin/1.3/|release-notes/1.2/" && # test_cmp "$CVSWORK/ space" " space" # # not ok - 15 use the same checkout for Git and CVS # # # (mkdir shared && # cd shared && # unset GIT_DIR && # cvs co . && # git init && # git add " space" && # git commit -m "fake initial commit" && # echo Hello >> " space" && # git commit -m "Another change" " space" && # git cvsexportcommit -W -p -u -c HEAD && # grep Hello " space" && # git diff-files) # # # failed 12 among 15 test(s) 1..15