tests/test-convert-svn-move
author Dan Villiom Podlaski Christiansen <danchr@gmail.com>
Sat, 14 Aug 2010 01:30:54 +0200
branchstable
changeset 11892 2be70ca17311
parent 11135 73a4ed3bfef8
permissions -rwxr-xr-x
encoding: improve handling of buggy getpreferredencoding() on Mac OS X Prior to version 2.7, calling locale.getpreferredencoding() would always return 'mac-roman' on Mac OS X. Previously, this was handled by a call to locale.setlocale(). Unfortunately, Python 2.6.5 and older have a bug where isspace() would incorrectly report True for 0x85 and 0xa0 after such a call. In order to fix this, we replace the previous _encodingfixup mapping to an _encodingfixers mapping. Rather than mapping encodings to their replacement, it maps them to a function returning the replacement. This allows us to provide an simplified implementation of getpreferredencoding() which extracts the expected encoding and restores the locale. This fix is based on a patch originally submitted by Martijn Pieters as well as feedback from Brodie Rao.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5955
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     1
#!/bin/sh
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     2
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     3
"$TESTDIR/hghave" svn svn-bindings || exit 80
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     4
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     5
fix_path()
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     6
{
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     7
    tr '\\' /
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     8
}
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     9
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    10
echo "[extensions]" >> $HGRCPATH
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    11
echo "convert = " >> $HGRCPATH
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    12
echo "hgext.graphlog =" >> $HGRCPATH
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    13
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    14
svnadmin create svn-repo
7475
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents: 6851
diff changeset
    15
cat "$TESTDIR/svn/move.svndump" | svnadmin load svn-repo > /dev/null
5955
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    16
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    17
svnpath=`pwd | fix_path`
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    18
# SVN wants all paths to start with a slash. Unfortunately,
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    19
# Windows ones don't. Handle that.
10775
c52057614c72 Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents: 8523
diff changeset
    20
expr "$svnpath" : "\/" > /dev/null
5955
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    21
if [ $? -ne 0 ]; then
10775
c52057614c72 Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents: 8523
diff changeset
    22
    svnpath="/$svnpath"
5955
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    23
fi
10775
c52057614c72 Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents: 8523
diff changeset
    24
svnurl="file://$svnpath/svn-repo"
5955
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    25
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    26
echo % convert trunk and branches
10775
c52057614c72 Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents: 8523
diff changeset
    27
hg convert --datesort "$svnurl"/subproject A-hg
5955
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    28
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    29
cd A-hg
8523
5b7da468531b tests: replace #...# syntax with {...}
Martin Geisler <mg@lazybytes.net>
parents: 7475
diff changeset
    30
hg glog --template '{rev} {desc|firstline} files: {files}\n'
11124
55abde5cba43 test-convert-svn-move: test moved dirs copy records
Patrick Mezard <pmezard@gmail.com>
parents: 10775
diff changeset
    31
echo '% check move copy records'
55abde5cba43 test-convert-svn-move: test moved dirs copy records
Patrick Mezard <pmezard@gmail.com>
parents: 10775
diff changeset
    32
hg st --rev 12:13 --copies
55abde5cba43 test-convert-svn-move: test moved dirs copy records
Patrick Mezard <pmezard@gmail.com>
parents: 10775
diff changeset
    33
echo '% check branches'
5955
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    34
hg branches | sed 's/:.*/:/'
c4496b7c10ce convert: fix svn_source.latest()
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    35
cd ..
11128
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    36
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    37
mkdir test-replace
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    38
cd test-replace
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    39
svnadmin create svn-repo
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    40
cat "$TESTDIR/svn/replace.svndump" | svnadmin load svn-repo > /dev/null
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    41
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    42
echo '% convert files being replaced by directories'
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    43
hg convert svn-repo hg-repo
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    44
cd hg-repo
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    45
echo '% manifest before'
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    46
hg -v manifest -r 1
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    47
echo '% manifest after clobber1'
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    48
hg -v manifest -r 2
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    49
echo '% manifest after clobber2'
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    50
hg -v manifest -r 3
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    51
echo '% try updating'
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    52
hg up -qC default
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents: 11124
diff changeset
    53
cd ..
11135
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    54
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    55
echo '% test convert progress bar'
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    56
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    57
echo "progress=" >> $HGRCPATH
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    58
echo "[progress]" >> $HGRCPATH
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    59
echo "assume-tty=1" >> $HGRCPATH
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    60
echo "delay=0" >> $HGRCPATH
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    61
echo "refresh=0" >> $HGRCPATH
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    62
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    63
cat > filtercr.py <<EOF
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    64
import sys, re
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    65
for line in sys.stdin:
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    66
    line = re.sub(r'\r+[^\n]', lambda m: '\n' + m.group()[-1:], line)
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    67
    sys.stdout.write(line)
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    68
EOF
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    69
73a4ed3bfef8 convert: add progress support
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    70
hg convert svn-repo hg-progress 2>&1 | python filtercr.py