t / t9600-cvsimport.shon commit Use CVS's -f option if available (ignore user's ~/.cvsrc file) (161261b)
   1#!/bin/sh
   2
   3test_description='git cvsimport basic tests'
   4. ./lib-cvs.sh
   5
   6CVSROOT=$(pwd)/cvsroot
   7export CVSROOT
   8
   9test_expect_success 'setup cvsroot' '$CVS init'
  10
  11test_expect_success 'setup a cvs module' '
  12
  13        mkdir "$CVSROOT/module" &&
  14        $CVS co -d module-cvs module &&
  15        cd module-cvs &&
  16        cat <<EOF >o_fortuna &&
  17O Fortuna
  18velut luna
  19statu variabilis,
  20
  21semper crescis
  22aut decrescis;
  23vita detestabilis
  24
  25nunc obdurat
  26et tunc curat
  27ludo mentis aciem,
  28
  29egestatem,
  30potestatem
  31dissolvit ut glaciem.
  32EOF
  33        $CVS add o_fortuna &&
  34        cat <<EOF >message &&
  35add "O Fortuna" lyrics
  36
  37These public domain lyrics make an excellent sample text.
  38EOF
  39        $CVS commit -F message &&
  40        cd ..
  41'
  42
  43test_expect_success 'import a trivial module' '
  44
  45        git cvsimport -a -z 0 -C module-git module &&
  46        test_cmp module-cvs/o_fortuna module-git/o_fortuna
  47
  48'
  49
  50test_expect_success 'pack refs' 'cd module-git && git gc && cd ..'
  51
  52test_expect_success 'update cvs module' '
  53
  54        cd module-cvs &&
  55        cat <<EOF >o_fortuna &&
  56O Fortune,
  57like the moon
  58you are changeable,
  59
  60ever waxing
  61and waning;
  62hateful life
  63
  64first oppresses
  65and then soothes
  66as fancy takes it;
  67
  68poverty
  69and power
  70it melts them like ice.
  71EOF
  72        cat <<EOF >message &&
  73translate to English
  74
  75My Latin is terrible.
  76EOF
  77        $CVS commit -F message &&
  78        cd ..
  79'
  80
  81test_expect_success 'update git module' '
  82
  83        cd module-git &&
  84        git cvsimport -a -z 0 module &&
  85        git merge origin &&
  86        cd .. &&
  87        test_cmp module-cvs/o_fortuna module-git/o_fortuna
  88
  89'
  90
  91test_expect_success 'update cvs module' '
  92
  93        cd module-cvs &&
  94                echo 1 >tick &&
  95                $CVS add tick &&
  96                $CVS commit -m 1
  97        cd ..
  98
  99'
 100
 101test_expect_success 'cvsimport.module config works' '
 102
 103        cd module-git &&
 104                git config cvsimport.module module &&
 105                git cvsimport -a -z0 &&
 106                git merge origin &&
 107        cd .. &&
 108        test_cmp module-cvs/tick module-git/tick
 109
 110'
 111
 112test_expect_success 'import from a CVS working tree' '
 113
 114        $CVS co -d import-from-wt module &&
 115        cd import-from-wt &&
 116                git cvsimport -a -z0 &&
 117                echo 1 >expect &&
 118                git log -1 --pretty=format:%s%n >actual &&
 119                test_cmp actual expect &&
 120        cd ..
 121
 122'
 123
 124test_done