tests/test-convert-cvs
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
Tue, 14 Oct 2008 20:13:53 +0200
changeset 7104 9514cbb6e4f6
parent 7101 e786192d995d
child 7812 18048153fd4e
permissions -rwxr-xr-x
bdiff: normalize the diff (issue1295) When the common part of a diff can be moved forward, move it forward. Otherwise we don't get deterministic results (it would depends on the way we split for the recursion). That way we get identical hunks when doing the same change, it helps to solve issue1295 (inconsistent diffs on different side during a merge).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5307
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     1
#!/bin/sh
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     2
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     3
"$TESTDIR/hghave" cvs cvsps || exit 80
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     4
5750
206b44764340 test-convert-cvs: force cvs -f options to avoid cvsrc
Patrick Mezard <pmezard@gmail.com>
parents: 5697
diff changeset
     5
cvscall()
206b44764340 test-convert-cvs: force cvs -f options to avoid cvsrc
Patrick Mezard <pmezard@gmail.com>
parents: 5697
diff changeset
     6
{
206b44764340 test-convert-cvs: force cvs -f options to avoid cvsrc
Patrick Mezard <pmezard@gmail.com>
parents: 5697
diff changeset
     7
    cvs -f $@
206b44764340 test-convert-cvs: force cvs -f options to avoid cvsrc
Patrick Mezard <pmezard@gmail.com>
parents: 5697
diff changeset
     8
}
206b44764340 test-convert-cvs: force cvs -f options to avoid cvsrc
Patrick Mezard <pmezard@gmail.com>
parents: 5697
diff changeset
     9
6717
2011bb8ada9a convert: hg sink commits without working dir
Patrick Mezard <pmezard@gmail.com>
parents: 6342
diff changeset
    10
hgcat()
2011bb8ada9a convert: hg sink commits without working dir
Patrick Mezard <pmezard@gmail.com>
parents: 6342
diff changeset
    11
{
2011bb8ada9a convert: hg sink commits without working dir
Patrick Mezard <pmezard@gmail.com>
parents: 6342
diff changeset
    12
    hg --cwd src-hg cat -r tip "$1"
2011bb8ada9a convert: hg sink commits without working dir
Patrick Mezard <pmezard@gmail.com>
parents: 6342
diff changeset
    13
}
2011bb8ada9a convert: hg sink commits without working dir
Patrick Mezard <pmezard@gmail.com>
parents: 6342
diff changeset
    14
7101
e786192d995d convert: make built-in cvsps the default
Patrick Mezard <pmezard@gmail.com>
parents: 6717
diff changeset
    15
# Test legacy configuration with external cvsps
5307
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    16
echo "[extensions]" >> $HGRCPATH
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    17
echo "convert = " >> $HGRCPATH
7101
e786192d995d convert: make built-in cvsps the default
Patrick Mezard <pmezard@gmail.com>
parents: 6717
diff changeset
    18
echo "graphlog = " >> $HGRCPATH
e786192d995d convert: make built-in cvsps the default
Patrick Mezard <pmezard@gmail.com>
parents: 6717
diff changeset
    19
echo "[convert]" >> $HGRCPATH
e786192d995d convert: make built-in cvsps the default
Patrick Mezard <pmezard@gmail.com>
parents: 6717
diff changeset
    20
echo "cvsps=cvsps -A -u --cvs-direct -q" >> $HGRCPATH
5307
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    21
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    22
echo % create cvs repository
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    23
mkdir cvsrepo
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    24
cd cvsrepo
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    25
export CVSROOT=`pwd`
5697
98f45e141567 convert: don't read ~/.cvsrc in test-convert-cvs
Maxim Dounin <mdounin@mdounin.ru>
parents: 5381
diff changeset
    26
export CVS_OPTIONS=-f
5307
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    27
cd ..
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    28
5750
206b44764340 test-convert-cvs: force cvs -f options to avoid cvsrc
Patrick Mezard <pmezard@gmail.com>
parents: 5697
diff changeset
    29
cvscall -q -d "$CVSROOT" init
5307
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    30
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    31
echo % create source directory
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    32
mkdir src-temp
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    33
cd src-temp
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    34
echo a > a
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    35
mkdir b
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    36
cd b
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    37
echo c > c
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    38
cd ..
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    39
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    40
echo % import source directory
5750
206b44764340 test-convert-cvs: force cvs -f options to avoid cvsrc
Patrick Mezard <pmezard@gmail.com>
parents: 5697
diff changeset
    41
cvscall -q import -m import src INITIAL start
5307
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    42
cd ..
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    43
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    44
echo % checkout source directory
5750
206b44764340 test-convert-cvs: force cvs -f options to avoid cvsrc
Patrick Mezard <pmezard@gmail.com>
parents: 5697
diff changeset
    45
cvscall -q checkout src
5307
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    46
5381
6874368120dc convert_cvs: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5364
diff changeset
    47
echo % commit a new revision changing b/c
6874368120dc convert_cvs: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5364
diff changeset
    48
cd src
6342
92444fa7190b tests: make test-convertcvs repeatable
Matt Mackall <mpm@selenic.com>
parents: 5921
diff changeset
    49
sleep 1
5381
6874368120dc convert_cvs: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5364
diff changeset
    50
echo c >> b/c
5750
206b44764340 test-convert-cvs: force cvs -f options to avoid cvsrc
Patrick Mezard <pmezard@gmail.com>
parents: 5697
diff changeset
    51
cvscall -q commit -mci0 . | grep '<--' |\
5381
6874368120dc convert_cvs: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5364
diff changeset
    52
    sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'
6874368120dc convert_cvs: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5364
diff changeset
    53
cd ..
6874368120dc convert_cvs: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5364
diff changeset
    54
5307
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    55
echo % convert fresh repo
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    56
hg convert src src-hg | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
6717
2011bb8ada9a convert: hg sink commits without working dir
Patrick Mezard <pmezard@gmail.com>
parents: 6342
diff changeset
    57
hgcat a
2011bb8ada9a convert: hg sink commits without working dir
Patrick Mezard <pmezard@gmail.com>
parents: 6342
diff changeset
    58
hgcat b/c
5307
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    59
5381
6874368120dc convert_cvs: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5364
diff changeset
    60
echo % convert fresh repo with --filemap
6874368120dc convert_cvs: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5364
diff changeset
    61
echo include b/c > filemap
6874368120dc convert_cvs: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5364
diff changeset
    62
hg convert --filemap filemap src src-filemap | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
6717
2011bb8ada9a convert: hg sink commits without working dir
Patrick Mezard <pmezard@gmail.com>
parents: 6342
diff changeset
    63
hgcat b/c
5381
6874368120dc convert_cvs: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5364
diff changeset
    64
hg -R src-filemap log --template '#rev# #desc# files: #files#\n'
6874368120dc convert_cvs: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5364
diff changeset
    65
5307
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    66
echo % commit new file revisions
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    67
cd src
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    68
echo a >> a
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    69
echo c >> b/c
5750
206b44764340 test-convert-cvs: force cvs -f options to avoid cvsrc
Patrick Mezard <pmezard@gmail.com>
parents: 5697
diff changeset
    70
cvscall -q commit -mci1 . | grep '<--' |\
5364
645a40777fd4 test-convert-cvs: handle older cvs client
Christian Ebert <blacktrash@gmx.net>
parents: 5307
diff changeset
    71
    sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'
5307
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    72
cd ..
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    73
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    74
echo % convert again
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    75
hg convert src src-hg | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
6717
2011bb8ada9a convert: hg sink commits without working dir
Patrick Mezard <pmezard@gmail.com>
parents: 6342
diff changeset
    76
hgcat a
2011bb8ada9a convert: hg sink commits without working dir
Patrick Mezard <pmezard@gmail.com>
parents: 6342
diff changeset
    77
hgcat b/c
5307
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    78
5381
6874368120dc convert_cvs: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5364
diff changeset
    79
echo % convert again with --filemap
6874368120dc convert_cvs: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5364
diff changeset
    80
hg convert --filemap filemap src src-filemap | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
6717
2011bb8ada9a convert: hg sink commits without working dir
Patrick Mezard <pmezard@gmail.com>
parents: 6342
diff changeset
    81
hgcat b/c
5381
6874368120dc convert_cvs: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5364
diff changeset
    82
hg -R src-filemap log --template '#rev# #desc# files: #files#\n'
5307
5b0b0834419c convert: test cvs repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    83
5919
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
    84
echo % commit branch
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
    85
cd src
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
    86
cvs -q update -r1.1 b/c
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
    87
cvs -q tag -b branch
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
    88
cvs -q update -r branch
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
    89
echo d >> b/c
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
    90
cvs -q commit -mci2 . | grep '<--' |\
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
    91
    sed -e 's:.*src/\(.*\),v.*:checking in src/\1,v:g'
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
    92
cd ..
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
    93
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
    94
echo % convert again
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
    95
hg convert src src-hg | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
6717
2011bb8ada9a convert: hg sink commits without working dir
Patrick Mezard <pmezard@gmail.com>
parents: 6342
diff changeset
    96
hgcat a
2011bb8ada9a convert: hg sink commits without working dir
Patrick Mezard <pmezard@gmail.com>
parents: 6342
diff changeset
    97
hgcat b/c
5919
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
    98
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
    99
echo % convert again with --filemap
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
   100
hg convert --filemap filemap src src-filemap | sed -e 's/connecting to.*cvsrepo/connecting to cvsrepo/g'
6717
2011bb8ada9a convert: hg sink commits without working dir
Patrick Mezard <pmezard@gmail.com>
parents: 6342
diff changeset
   101
hgcat b/c
5919
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
   102
hg -R src-filemap log --template '#rev# #desc# files: #files#\n'
badf5711bd86 Test for converting a CVS branch
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5381
diff changeset
   103
hg -R src-hg glog --template '#rev# (#branches#) #desc# files: #files#\n'