tests/svn/svndump-move.sh
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Mon, 07 Mar 2016 03:14:19 +0900
changeset 28385 3f9e25a42e69
parent 11124 55abde5cba43
permissions -rwxr-xr-x
destutil: choose non-closed branch head at first (BC) Before this patch, destupdate() returns the tipmost (descendant) branch head regardless of closed or not. But updating to closed branch head isn't reasonable for ordinary workflow, because: - "hg heads" doesn't show closed heads (= updated parent itself) by default - subsequent committing on it re-opens closed branch even if inactivation of closed head is needed, update destination isn't it, because it should be merged into to another branch in such case. This patch chooses non-closed descendant branch head as default update destination at first. If all descendant branch heads are closed, destupdate() returns the tipmost closed branch head. For simplicity, this patch chooses adding _destupdatebranchfallback() instead largely changing _destupdatebranch(). This patch changes not only normal lookup code path, but also the "no default branch" code path, for consistency.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7475
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     1
#!/bin/sh
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     2
#
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     3
# Use this script to generate move.svndump
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     4
#
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     5
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     6
mkdir temp
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     7
cd temp
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     8
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     9
mkdir project-orig
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    10
cd project-orig
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    11
mkdir trunk
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    12
echo a > trunk/a
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    13
mkdir trunk/d1
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    14
mkdir trunk/d2
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    15
echo b > trunk/d1/b
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    16
echo c > trunk/d1/c
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    17
echo d > trunk/d2/d
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    18
cd ..
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    19
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    20
svnadmin create svn-repo
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    21
svnurl=file://`pwd`/svn-repo
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    22
svn import project-orig $svnurl -m "init projA"
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    23
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    24
svn co $svnurl project
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    25
cd project
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    26
# Build a module renaming chain which used to confuse the converter.
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    27
# Update svn repository
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    28
echo a >> trunk/a
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    29
echo c >> trunk/d1/c
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    30
svn ci -m commitbeforemove
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    31
svn mv $svnurl/trunk $svnurl/subproject -m movedtrunk
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    32
svn up
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    33
mkdir subproject/trunk
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    34
svn add subproject/trunk
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    35
svn ci -m createtrunk
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    36
mkdir subproject/branches
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    37
svn add subproject/branches
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    38
svn ci -m createbranches
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    39
svn mv $svnurl/subproject/d1 $svnurl/subproject/trunk/d1 -m moved1
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    40
svn mv $svnurl/subproject/d2 $svnurl/subproject/trunk/d2 -m moved2
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    41
svn up
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    42
echo b >> subproject/trunk/d1/b
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    43
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    44
svn rm subproject/trunk/d2
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    45
svn ci -m "changeb and rm d2"
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    46
svn mv $svnurl/subproject/trunk/d1 $svnurl/subproject/branches/d1 -m moved1again
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    47
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    48
if svn help copy | grep 'SRC\[@REV\]' > /dev/null 2>&1; then
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    49
    # SVN >= 1.5 replaced the -r REV syntax with @REV
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    50
    # Copy a file from a past revision
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    51
    svn copy $svnurl/subproject/trunk/d2/d@7 $svnurl/subproject/trunk -m copyfilefrompast
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    52
    # Copy a directory from a past revision
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    53
    svn copy $svnurl/subproject/trunk/d2@7 $svnurl/subproject/trunk -m copydirfrompast
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    54
else
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    55
    # Copy a file from a past revision
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    56
    svn copy -r 7 $svnurl/subproject/trunk/d2/d $svnurl/subproject/trunk -m copyfilefrompast
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    57
    # Copy a directory from a past revision
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    58
    svn copy -r 7 $svnurl/subproject/trunk/d2 $svnurl/subproject/trunk -m copydirfrompast
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    59
fi
8884
8b603c7c808e convert/svn: remove dead code from entry deletion code path
Patrick Mezard <pmezard@gmail.com>
parents: 7475
diff changeset
    60
8b603c7c808e convert/svn: remove dead code from entry deletion code path
Patrick Mezard <pmezard@gmail.com>
parents: 7475
diff changeset
    61
# Copy a directory while removing a subdirectory
8b603c7c808e convert/svn: remove dead code from entry deletion code path
Patrick Mezard <pmezard@gmail.com>
parents: 7475
diff changeset
    62
svn up
8b603c7c808e convert/svn: remove dead code from entry deletion code path
Patrick Mezard <pmezard@gmail.com>
parents: 7475
diff changeset
    63
mkdir -p subproject/trunk/d3/d31
8b603c7c808e convert/svn: remove dead code from entry deletion code path
Patrick Mezard <pmezard@gmail.com>
parents: 7475
diff changeset
    64
echo e > subproject/trunk/d3/d31/e
8b603c7c808e convert/svn: remove dead code from entry deletion code path
Patrick Mezard <pmezard@gmail.com>
parents: 7475
diff changeset
    65
echo f > subproject/trunk/d3/f
8b603c7c808e convert/svn: remove dead code from entry deletion code path
Patrick Mezard <pmezard@gmail.com>
parents: 7475
diff changeset
    66
svn add subproject/trunk/d3
8b603c7c808e convert/svn: remove dead code from entry deletion code path
Patrick Mezard <pmezard@gmail.com>
parents: 7475
diff changeset
    67
svn ci -m "add d3"
8b603c7c808e convert/svn: remove dead code from entry deletion code path
Patrick Mezard <pmezard@gmail.com>
parents: 7475
diff changeset
    68
svn copy subproject/trunk/d3 subproject/trunk/d4
8b603c7c808e convert/svn: remove dead code from entry deletion code path
Patrick Mezard <pmezard@gmail.com>
parents: 7475
diff changeset
    69
svn rm subproject/trunk/d3/d31
8b603c7c808e convert/svn: remove dead code from entry deletion code path
Patrick Mezard <pmezard@gmail.com>
parents: 7475
diff changeset
    70
svn ci -m "copy dir and remove subdir"
11124
55abde5cba43 test-convert-svn-move: test moved dirs copy records
Patrick Mezard <pmezard@gmail.com>
parents: 8884
diff changeset
    71
55abde5cba43 test-convert-svn-move: test moved dirs copy records
Patrick Mezard <pmezard@gmail.com>
parents: 8884
diff changeset
    72
# Test directory moves
55abde5cba43 test-convert-svn-move: test moved dirs copy records
Patrick Mezard <pmezard@gmail.com>
parents: 8884
diff changeset
    73
svn up
55abde5cba43 test-convert-svn-move: test moved dirs copy records
Patrick Mezard <pmezard@gmail.com>
parents: 8884
diff changeset
    74
mkdir -p subproject/trunk/d4old
55abde5cba43 test-convert-svn-move: test moved dirs copy records
Patrick Mezard <pmezard@gmail.com>
parents: 8884
diff changeset
    75
echo g > subproject/trunk/d4old/g
55abde5cba43 test-convert-svn-move: test moved dirs copy records
Patrick Mezard <pmezard@gmail.com>
parents: 8884
diff changeset
    76
svn add subproject/trunk/d4old
55abde5cba43 test-convert-svn-move: test moved dirs copy records
Patrick Mezard <pmezard@gmail.com>
parents: 8884
diff changeset
    77
svn ci -m "add d4old"
55abde5cba43 test-convert-svn-move: test moved dirs copy records
Patrick Mezard <pmezard@gmail.com>
parents: 8884
diff changeset
    78
svn mv subproject/trunk/d4old subproject/trunk/d4new
55abde5cba43 test-convert-svn-move: test moved dirs copy records
Patrick Mezard <pmezard@gmail.com>
parents: 8884
diff changeset
    79
svn ci -m "rename d4old into d4new"
55abde5cba43 test-convert-svn-move: test moved dirs copy records
Patrick Mezard <pmezard@gmail.com>
parents: 8884
diff changeset
    80
7475
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    81
cd ..
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    82
90d8dfb481e7 Rewrite svn tests using svndump
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    83
svnadmin dump svn-repo > ../move.svndump