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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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