diff --git a/t/t9600-cvsimport.sh b/t/t9600-cvsimport.sh
index 363345faef7b1eb209c548914b94460d9475cb13..432b82e3d5a361d0eba329f5d5c56c17009738db 100755 (executable)
--- a/t/t9600-cvsimport.sh
+++ b/t/t9600-cvsimport.sh
test_description='git cvsimport basic tests'
. ./lib-cvs.sh
test_description='git cvsimport basic tests'
. ./lib-cvs.sh
-if ! test_have_prereq PERL; then
- say 'skipping git cvsimport tests, perl not available'
- test_done
-fi
-
-CVSROOT=$(pwd)/cvsroot
-export CVSROOT
+test_expect_success PERL 'setup cvsroot environment' '
+ CVSROOT=$(pwd)/cvsroot &&
+ export CVSROOT
+'
-test_expect_success 'setup cvsroot' '$CVS init'
+test_expect_success PERL 'setup cvsroot' '$CVS init'
-test_expect_success 'setup a cvs module' '
+test_expect_success PERL 'setup a cvs module' '
mkdir "$CVSROOT/module" &&
$CVS co -d module-cvs module &&
mkdir "$CVSROOT/module" &&
$CVS co -d module-cvs module &&
- cd module-cvs &&
+ (cd module-cvs &&
cat <<EOF >o_fortuna &&
O Fortuna
velut luna
cat <<EOF >o_fortuna &&
O Fortuna
velut luna
These public domain lyrics make an excellent sample text.
EOF
These public domain lyrics make an excellent sample text.
EOF
- $CVS commit -F message &&
- cd ..
+ $CVS commit -F message
+ )
'
'
-test_expect_success 'import a trivial module' '
+test_expect_success PERL 'import a trivial module' '
- git cvsimport -a -z 0 -C module-git module &&
+ git cvsimport -a -R -z 0 -C module-git module &&
test_cmp module-cvs/o_fortuna module-git/o_fortuna
'
test_cmp module-cvs/o_fortuna module-git/o_fortuna
'
-test_expect_success 'pack refs' 'cd module-git && git gc && cd ..'
+test_expect_success PERL 'pack refs' '(cd module-git && git gc)'
-test_expect_success 'update cvs module' '
+test_expect_success PERL 'initial import has correct .git/cvs-revisions' '
+
+ (cd module-git &&
+ git log --format="o_fortuna 1.1 %H" -1) > expected &&
+ test_cmp expected module-git/.git/cvs-revisions
+'
- cd module-cvs &&
+test_expect_success PERL 'update cvs module' '
+ (cd module-cvs &&
cat <<EOF >o_fortuna &&
O Fortune,
like the moon
cat <<EOF >o_fortuna &&
O Fortune,
like the moon
My Latin is terrible.
EOF
My Latin is terrible.
EOF
- $CVS commit -F message &&
- cd ..
+ $CVS commit -F message
+ )
'
'
-test_expect_success 'update git module' '
+test_expect_success PERL 'update git module' '
- cd module-git &&
- git cvsimport -a -z 0 module &&
- git merge origin &&
- cd .. &&
+ (cd module-git &&
+ git cvsimport -a -R -z 0 module &&
+ git merge origin
+ ) &&
test_cmp module-cvs/o_fortuna module-git/o_fortuna
'
test_cmp module-cvs/o_fortuna module-git/o_fortuna
'
-test_expect_success 'update cvs module' '
+test_expect_success PERL 'update has correct .git/cvs-revisions' '
- cd module-cvs &&
+ (cd module-git &&
+ git log --format="o_fortuna 1.1 %H" -1 HEAD^ &&
+ git log --format="o_fortuna 1.2 %H" -1 HEAD) > expected &&
+ test_cmp expected module-git/.git/cvs-revisions
+'
+
+test_expect_success PERL 'update cvs module' '
+
+ (cd module-cvs &&
echo 1 >tick &&
$CVS add tick &&
$CVS commit -m 1
echo 1 >tick &&
$CVS add tick &&
$CVS commit -m 1
- cd ..
-
+ )
'
'
-test_expect_success 'cvsimport.module config works' '
+test_expect_success PERL 'cvsimport.module config works' '
- cd module-git &&
+ (cd module-git &&
git config cvsimport.module module &&
git config cvsimport.module module &&
- git cvsimport -a -z0 &&
- git merge origin &&
- cd .. &&
+ git cvsimport -a -R -z0 &&
+ git merge origin
+ ) &&
test_cmp module-cvs/tick module-git/tick
'
test_cmp module-cvs/tick module-git/tick
'
-test_expect_success 'import from a CVS working tree' '
+test_expect_success PERL 'second update has correct .git/cvs-revisions' '
+
+ (cd module-git &&
+ git log --format="o_fortuna 1.1 %H" -1 HEAD^^ &&
+ git log --format="o_fortuna 1.2 %H" -1 HEAD^
+ git log --format="tick 1.1 %H" -1 HEAD) > expected &&
+ test_cmp expected module-git/.git/cvs-revisions
+'
+
+test_expect_success PERL 'import from a CVS working tree' '
$CVS co -d import-from-wt module &&
$CVS co -d import-from-wt module &&
- cd import-from-wt &&
+ (cd import-from-wt &&
git cvsimport -a -z0 &&
echo 1 >expect &&
git log -1 --pretty=format:%s%n >actual &&
git cvsimport -a -z0 &&
echo 1 >expect &&
git log -1 --pretty=format:%s%n >actual &&
- test_cmp actual expect &&
- cd ..
+ test_cmp actual expect
+ )
+
+'
+
+test_expect_success PERL 'no .git/cvs-revisions created by default' '
+
+ ! test -e import-from-wt/.git/cvs-revisions
'
'
-test_expect_success 'test entire HEAD' 'test_cmp_branch_tree master'
+test_expect_success PERL 'test entire HEAD' 'test_cmp_branch_tree master'
test_done
test_done