t / t9600-cvsimport.shon commit Merge branch 'nd/war-on-nul-in-commit' (f35ccd9)
   1#!/bin/sh
   2
   3test_description='git cvsimport basic tests'
   4. ./lib-cvs.sh
   5
   6test_expect_success PERL 'setup cvsroot environment' '
   7        CVSROOT=$(pwd)/cvsroot &&
   8        export CVSROOT
   9'
  10
  11test_expect_success PERL 'setup cvsroot' '$CVS init'
  12
  13test_expect_success PERL 'setup a cvs module' '
  14
  15        mkdir "$CVSROOT/module" &&
  16        $CVS co -d module-cvs module &&
  17        (cd module-cvs &&
  18        cat <<EOF >o_fortuna &&
  19O Fortuna
  20velut luna
  21statu variabilis,
  22
  23semper crescis
  24aut decrescis;
  25vita detestabilis
  26
  27nunc obdurat
  28et tunc curat
  29ludo mentis aciem,
  30
  31egestatem,
  32potestatem
  33dissolvit ut glaciem.
  34EOF
  35        $CVS add o_fortuna &&
  36        cat <<EOF >message &&
  37add "O Fortuna" lyrics
  38
  39These public domain lyrics make an excellent sample text.
  40EOF
  41        $CVS commit -F message
  42        )
  43'
  44
  45test_expect_success PERL 'import a trivial module' '
  46
  47        git cvsimport -a -R -z 0 -C module-git module &&
  48        test_cmp module-cvs/o_fortuna module-git/o_fortuna
  49
  50'
  51
  52test_expect_success PERL 'pack refs' '(cd module-git && git gc)'
  53
  54test_expect_success PERL 'initial import has correct .git/cvs-revisions' '
  55
  56        (cd module-git &&
  57         git log --format="o_fortuna 1.1 %H" -1) > expected &&
  58        test_cmp expected module-git/.git/cvs-revisions
  59'
  60
  61test_expect_success PERL 'update cvs module' '
  62        (cd module-cvs &&
  63        cat <<EOF >o_fortuna &&
  64O Fortune,
  65like the moon
  66you are changeable,
  67
  68ever waxing
  69and waning;
  70hateful life
  71
  72first oppresses
  73and then soothes
  74as fancy takes it;
  75
  76poverty
  77and power
  78it melts them like ice.
  79EOF
  80        cat <<EOF >message &&
  81translate to English
  82
  83My Latin is terrible.
  84EOF
  85        $CVS commit -F message
  86        )
  87'
  88
  89test_expect_success PERL 'update git module' '
  90
  91        (cd module-git &&
  92        git config cvsimport.trackRevisions true &&
  93        git cvsimport -a -z 0 module &&
  94        git merge origin
  95        ) &&
  96        test_cmp module-cvs/o_fortuna module-git/o_fortuna
  97
  98'
  99
 100test_expect_success PERL 'update has correct .git/cvs-revisions' '
 101
 102        (cd module-git &&
 103         git log --format="o_fortuna 1.1 %H" -1 HEAD^ &&
 104         git log --format="o_fortuna 1.2 %H" -1 HEAD) > expected &&
 105        test_cmp expected module-git/.git/cvs-revisions
 106'
 107
 108test_expect_success PERL 'update cvs module' '
 109
 110        (cd module-cvs &&
 111                echo 1 >tick &&
 112                $CVS add tick &&
 113                $CVS commit -m 1
 114        )
 115'
 116
 117test_expect_success PERL 'cvsimport.module config works' '
 118
 119        (cd module-git &&
 120                git config cvsimport.module module &&
 121                git config cvsimport.trackRevisions true &&
 122                git cvsimport -a -z0 &&
 123                git merge origin
 124        ) &&
 125        test_cmp module-cvs/tick module-git/tick
 126
 127'
 128
 129test_expect_success PERL 'second update has correct .git/cvs-revisions' '
 130
 131        (cd module-git &&
 132         git log --format="o_fortuna 1.1 %H" -1 HEAD^^ &&
 133         git log --format="o_fortuna 1.2 %H" -1 HEAD^
 134         git log --format="tick 1.1 %H" -1 HEAD) > expected &&
 135        test_cmp expected module-git/.git/cvs-revisions
 136'
 137
 138test_expect_success PERL 'import from a CVS working tree' '
 139
 140        $CVS co -d import-from-wt module &&
 141        (cd import-from-wt &&
 142                git config cvsimport.trackRevisions false &&
 143                git cvsimport -a -z0 &&
 144                echo 1 >expect &&
 145                git log -1 --pretty=format:%s%n >actual &&
 146                test_cmp actual expect
 147        )
 148
 149'
 150
 151test_expect_success PERL 'no .git/cvs-revisions created by default' '
 152
 153        ! test -e import-from-wt/.git/cvs-revisions
 154
 155'
 156
 157test_expect_success PERL 'test entire HEAD' 'test_cmp_branch_tree master'
 158
 159test_done