Mercurial > hg
annotate tests/test-convert-mtn @ 8099:3cdf4872941a
convert/mtn: handle new files in moved directories (issue1619)
Reported and investigated by Paul Aurich <paul@darkrain42.org>
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Tue, 21 Apr 2009 14:17:29 +0200 |
parents | 087cc65bebff |
children | 933b874e402f |
rev | line source |
---|---|
6372
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
1 #!/bin/sh |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
2 |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
3 "$TESTDIR/hghave" mtn || exit 80 |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
4 |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
5 # Monotone directory is called .monotone on *nix and monotone |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
6 # on Windows. Having a variable here ease test patching. |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
7 mtndir=.monotone |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
8 echo "[extensions]" >> $HGRCPATH |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
9 echo "convert=" >> $HGRCPATH |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
10 echo 'hgext.graphlog =' >> $HGRCPATH |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
11 |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
12 HOME=`pwd`/do_not_use_HOME_mtn; export HOME |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
13 # Windows version of monotone home |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
14 APPDATA=$HOME; export APPDATA |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
15 |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
16 echo % tedious monotone keys configuration |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
17 # The /dev/null redirection is necessary under Windows, or |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
18 # it complains about home directory permissions |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
19 mtn --quiet genkey test@selenic.com 1>/dev/null 2>&1 <<EOF |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
20 passphrase |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
21 passphrase |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
22 EOF |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
23 cat >> $HOME/$mtndir/monotonerc <<EOF |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
24 function get_passphrase(keypair_id) |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
25 return "passphrase" |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
26 end |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
27 EOF |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
28 |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
29 echo % create monotone repository |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
30 mtn db init --db=repo.mtn |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
31 mtn --db=repo.mtn --branch=com.selenic.test setup workingdir |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
32 cd workingdir |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
33 echo a > a |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
34 mkdir dir |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
35 echo b > dir/b |
8099
3cdf4872941a
convert/mtn: handle new files in moved directories (issue1619)
Patrick Mezard <pmezard@gmail.com>
parents:
8050
diff
changeset
|
36 echo d > dir/d |
6372
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
37 python -c 'file("bin", "wb").write("a\\x00b")' |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
38 echo c > c |
8099
3cdf4872941a
convert/mtn: handle new files in moved directories (issue1619)
Patrick Mezard <pmezard@gmail.com>
parents:
8050
diff
changeset
|
39 mtn add a dir/b dir/d c bin |
6372
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
40 mtn ci -m initialize |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
41 echo % update monotone working directory |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
42 mtn mv a dir/a |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
43 echo a >> dir/a |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
44 echo b >> dir/b |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
45 mtn drop c |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
46 python -c 'file("bin", "wb").write("b\\x00c")' |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
47 mtn ci -m update1 |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
48 cd .. |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
49 |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
50 echo % convert once |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
51 hg convert -s mtn repo.mtn |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
52 |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
53 cd workingdir |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
54 echo e > e |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
55 mtn add e |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
56 mtn drop dir/b |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
57 mtn mv bin bin2 |
6633
67a2d2d9bf21
test-convert-mtn: test descriptions with quotes
Patrick Mezard <pmezard@gmail.com>
parents:
6396
diff
changeset
|
58 mtn ci -m 'update2 "with" quotes' |
8050
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
59 echo '% test directory move' |
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
60 mkdir -p dir1/subdir1 |
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
61 mkdir -p dir1/subdir2_other |
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
62 echo file1 > dir1/subdir1/file1 |
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
63 echo file2 > dir1/subdir2_other/file1 |
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
64 mtn add dir1/subdir1/file1 dir1/subdir2_other/file1 |
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
65 mtn ci -m createdir1 |
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
66 mtn rename dir1/subdir1 dir1/subdir2 |
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
67 mtn ci -m movedir1 |
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
68 echo '% test subdirectory move' |
6377
2cf67d007f41
test-convert-mtn: test directory move
Patrick Mezard <pmezard@gmail.com>
parents:
6376
diff
changeset
|
69 mtn mv dir dir2 |
8099
3cdf4872941a
convert/mtn: handle new files in moved directories (issue1619)
Patrick Mezard <pmezard@gmail.com>
parents:
8050
diff
changeset
|
70 echo newfile > dir2/newfile |
3cdf4872941a
convert/mtn: handle new files in moved directories (issue1619)
Patrick Mezard <pmezard@gmail.com>
parents:
8050
diff
changeset
|
71 mtn drop dir2/d |
3cdf4872941a
convert/mtn: handle new files in moved directories (issue1619)
Patrick Mezard <pmezard@gmail.com>
parents:
8050
diff
changeset
|
72 mtn add dir2/newfile |
6377
2cf67d007f41
test-convert-mtn: test directory move
Patrick Mezard <pmezard@gmail.com>
parents:
6376
diff
changeset
|
73 mtn ci -m movedir |
6396
18eeabae6148
test-convert-mtn: test directory deletion
Patrick Mezard <pmezard@gmail.com>
parents:
6377
diff
changeset
|
74 # Test directory removal with empty directory |
18eeabae6148
test-convert-mtn: test directory deletion
Patrick Mezard <pmezard@gmail.com>
parents:
6377
diff
changeset
|
75 mkdir dir2/dir |
18eeabae6148
test-convert-mtn: test directory deletion
Patrick Mezard <pmezard@gmail.com>
parents:
6377
diff
changeset
|
76 mkdir dir2/dir/subdir |
18eeabae6148
test-convert-mtn: test directory deletion
Patrick Mezard <pmezard@gmail.com>
parents:
6377
diff
changeset
|
77 echo f > dir2/dir/subdir/f |
18eeabae6148
test-convert-mtn: test directory deletion
Patrick Mezard <pmezard@gmail.com>
parents:
6377
diff
changeset
|
78 mkdir dir2/dir/emptydir |
6873
39b4db2ea6ed
Make test-convert-mtn pass on systems where mtn add -R uses different order
Thomas Arendsen Hein <thomas@intevation.de>
parents:
6633
diff
changeset
|
79 mtn add --quiet -R dir2/dir |
6396
18eeabae6148
test-convert-mtn: test directory deletion
Patrick Mezard <pmezard@gmail.com>
parents:
6377
diff
changeset
|
80 mtn ci -m emptydir |
18eeabae6148
test-convert-mtn: test directory deletion
Patrick Mezard <pmezard@gmail.com>
parents:
6377
diff
changeset
|
81 mtn drop -R dir2/dir |
18eeabae6148
test-convert-mtn: test directory deletion
Patrick Mezard <pmezard@gmail.com>
parents:
6377
diff
changeset
|
82 mtn ci -m dropdirectory |
6372
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
83 cd .. |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
84 |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
85 echo % convert incrementally |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
86 hg convert -s mtn repo.mtn |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
87 |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
88 glog() |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
89 { |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
90 hg glog --template '#rev# "#desc|firstline#" files: #files#\n' "$@" |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
91 } |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
92 |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
93 cd repo.mtn-hg |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
94 hg up -C |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
95 glog |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
96 echo % manifest |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
97 hg manifest |
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
98 echo % contents |
6377
2cf67d007f41
test-convert-mtn: test directory move
Patrick Mezard <pmezard@gmail.com>
parents:
6376
diff
changeset
|
99 cat dir2/a |
6396
18eeabae6148
test-convert-mtn: test directory deletion
Patrick Mezard <pmezard@gmail.com>
parents:
6377
diff
changeset
|
100 test -d dir2/dir && echo 'removed dir2/dir is still there!' |
8050
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
101 |
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
102 echo % file move |
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
103 hg log -v -C -r 1 | grep copies |
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
104 echo % check directory move |
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
105 hg manifest -r 4 |
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
106 test -d dir1/subdir2 || echo 'new dir1/subdir2 does not exist!' |
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
107 test -d dir1/subdir1 && echo 'renamed dir1/subdir1 is still there!' |
087cc65bebff
convert/mtn: record changes from directory renames (issue1587)
Patrick Mezard <pmezard@gmail.com>
parents:
6873
diff
changeset
|
108 hg log -v -C -r 4 | grep copies |
8099
3cdf4872941a
convert/mtn: handle new files in moved directories (issue1619)
Patrick Mezard <pmezard@gmail.com>
parents:
8050
diff
changeset
|
109 echo % check file remove with directory move |
3cdf4872941a
convert/mtn: handle new files in moved directories (issue1619)
Patrick Mezard <pmezard@gmail.com>
parents:
8050
diff
changeset
|
110 hg manifest -r 5 |
6396
18eeabae6148
test-convert-mtn: test directory deletion
Patrick Mezard <pmezard@gmail.com>
parents:
6377
diff
changeset
|
111 exit 0 |
6372
8f79820443a4
Add a test for monotone conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
112 |