mirror of
https://github.com/git/git
synced 2024-08-26 19:19:18 +00:00
![Michael J Gruber](/assets/img/avatar_default.png)
The current code leads to fatal: bad config value for 'cvsimport.r' in .git/config for a standard use case with cvsimport.r set. cvsimport sets internal variables by checking the config for each possible command line option. The problem is that config items are case insensitive, so config.r and config.R are the same. The ugly error is due to that fact that cvsimport expects a bool for -R (and thus config.R) but a remote name for -r (and thus config.r). Fix this by making cvsimport expect long names for uppercase options. config options for cvsimport have been undocumented so far, though present in the code and advertised in several tutorials. So one may read "enhance" for "fix". Similarly, the names for the options are "documented" in the code, waitiing for their lowercase equivalents to be transformed into long config options, as well. Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
160 lines
3.1 KiB
Bash
Executable file
160 lines
3.1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='git cvsimport basic tests'
|
|
. ./lib-cvs.sh
|
|
|
|
test_expect_success PERL 'setup cvsroot environment' '
|
|
CVSROOT=$(pwd)/cvsroot &&
|
|
export CVSROOT
|
|
'
|
|
|
|
test_expect_success PERL 'setup cvsroot' '$CVS init'
|
|
|
|
test_expect_success PERL 'setup a cvs module' '
|
|
|
|
mkdir "$CVSROOT/module" &&
|
|
$CVS co -d module-cvs module &&
|
|
(cd module-cvs &&
|
|
cat <<EOF >o_fortuna &&
|
|
O Fortuna
|
|
velut luna
|
|
statu variabilis,
|
|
|
|
semper crescis
|
|
aut decrescis;
|
|
vita detestabilis
|
|
|
|
nunc obdurat
|
|
et tunc curat
|
|
ludo mentis aciem,
|
|
|
|
egestatem,
|
|
potestatem
|
|
dissolvit ut glaciem.
|
|
EOF
|
|
$CVS add o_fortuna &&
|
|
cat <<EOF >message &&
|
|
add "O Fortuna" lyrics
|
|
|
|
These public domain lyrics make an excellent sample text.
|
|
EOF
|
|
$CVS commit -F message
|
|
)
|
|
'
|
|
|
|
test_expect_success PERL 'import a trivial module' '
|
|
|
|
git cvsimport -a -R -z 0 -C module-git module &&
|
|
test_cmp module-cvs/o_fortuna module-git/o_fortuna
|
|
|
|
'
|
|
|
|
test_expect_success PERL 'pack refs' '(cd module-git && git gc)'
|
|
|
|
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
|
|
'
|
|
|
|
test_expect_success PERL 'update cvs module' '
|
|
(cd module-cvs &&
|
|
cat <<EOF >o_fortuna &&
|
|
O Fortune,
|
|
like the moon
|
|
you are changeable,
|
|
|
|
ever waxing
|
|
and waning;
|
|
hateful life
|
|
|
|
first oppresses
|
|
and then soothes
|
|
as fancy takes it;
|
|
|
|
poverty
|
|
and power
|
|
it melts them like ice.
|
|
EOF
|
|
cat <<EOF >message &&
|
|
translate to English
|
|
|
|
My Latin is terrible.
|
|
EOF
|
|
$CVS commit -F message
|
|
)
|
|
'
|
|
|
|
test_expect_success PERL 'update git module' '
|
|
|
|
(cd module-git &&
|
|
git config cvsimport.trackRevisions true &&
|
|
git cvsimport -a -z 0 module &&
|
|
git merge origin
|
|
) &&
|
|
test_cmp module-cvs/o_fortuna module-git/o_fortuna
|
|
|
|
'
|
|
|
|
test_expect_success PERL '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) > 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
|
|
)
|
|
'
|
|
|
|
test_expect_success PERL 'cvsimport.module config works' '
|
|
|
|
(cd module-git &&
|
|
git config cvsimport.module module &&
|
|
git config cvsimport.trackRevisions true &&
|
|
git cvsimport -a -z0 &&
|
|
git merge origin
|
|
) &&
|
|
test_cmp module-cvs/tick module-git/tick
|
|
|
|
'
|
|
|
|
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 &&
|
|
(cd import-from-wt &&
|
|
git config cvsimport.trackRevisions false &&
|
|
git cvsimport -a -z0 &&
|
|
echo 1 >expect &&
|
|
git log -1 --pretty=format:%s%n >actual &&
|
|
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 PERL 'test entire HEAD' 'test_cmp_branch_tree master'
|
|
|
|
test_done
|