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