tests/svn/svndump-replace.sh
author Jun Wu <quark@fb.com>
Wed, 06 Sep 2017 21:23:38 -0700
changeset 34275 86a5df995880
parent 13052 5fb924ee44d5
permissions -rwxr-xr-x
blackbox: unindent a try block The try block is no longer necessary. Differential Revision: https://phab.mercurial-scm.org/D654
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11128
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     1
#!/bin/sh
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     2
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     3
RSVN="`pwd`/rsvn.py"
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     4
export PATH=/bin:/usr/bin
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     5
mkdir temp
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     6
cd temp
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     7
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     8
svnadmin create repo
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     9
svn co file://`pwd`/repo wc
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    10
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    11
cd wc
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    12
mkdir trunk branches
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    13
cd trunk
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    14
echo a > a
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    15
mkdir d
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    16
echo b > d/b
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    17
ln -s d dlink
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    18
ln -s d dlink2
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    19
ln -s d dlink3
13052
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    20
mkdir d2
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    21
echo a > d2/a
11128
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    22
cd ..
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    23
svn add *
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    24
svn ci -m 'initial'
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    25
# Clobber symlink with file with similar content
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    26
cd trunk
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    27
ls -Alh
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    28
readlink dlink3 > dlink3tmp
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    29
rm dlink3
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    30
mv dlink3tmp dlink3
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    31
svn propdel svn:special dlink3
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    32
svn ci -m 'clobber symlink'
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    33
cd ..
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    34
svn up
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    35
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    36
# Clobber files and symlink with directories
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    37
cd ..
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    38
cat > clobber.rsvn <<EOF
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    39
rdelete trunk/a
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    40
rdelete trunk/dlink
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    41
rcopy trunk/d trunk/a
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    42
rcopy trunk/d trunk/dlink
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    43
EOF
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    44
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    45
python $RSVN --message=clobber1 --username=evil `pwd`/repo < clobber.rsvn
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    46
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    47
# Clobber non-symlink with symlink with same content (kudos openwrt)
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    48
cat > clobber.rsvn <<EOF
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    49
rdelete trunk/dlink3
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    50
rcopy trunk/dlink2 trunk/dlink3
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    51
EOF
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    52
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    53
python $RSVN --message=clobber2 --username=evil `pwd`/repo < clobber.rsvn
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    54
13052
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    55
# Create d2 in branch so d2 has 'a' is in branch/d2 and trunk/d2,
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    56
# 'b' is in trunk/d2 and 'c' is in branch/d2
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    57
cd wc/trunk
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    58
echo b > d2/b
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    59
svn add d2/b
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    60
svn ci -m adddb
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    61
cd ..
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    62
svn up
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    63
svn cp trunk branches/branch
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    64
cd branches/branch
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    65
svn rm d2/b
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    66
echo c > d2/c
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    67
svn add d2/c
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    68
cd ../..
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    69
svn ci -m branch
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    70
svn up
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    71
cd ..
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    72
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    73
cat > clobber.rsvn <<EOF
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    74
rdelete trunk/d2
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    75
rcopy branches/branch/d2 trunk/d2
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    76
EOF
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    77
python $RSVN --message=clobberdir --username=evil `pwd`/repo < clobber.rsvn
5fb924ee44d5 convert/svn: fix changed files list upon directory replacements
Patrick Mezard <pmezard@gmail.com>
parents: 11128
diff changeset
    78
11128
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    79
svn log -v file://`pwd`/repo
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    80
a9b427b5821e convert/svn: handle files/links replaced by dirs (issue2166)
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    81
svnadmin dump repo > ../replace.svndump