Mercurial > hg > mercurial-crew-with-dirclash
annotate tests/test-convert-svn @ 5483:0c43f87baba3 default tip
Fix file-changed-to-dir and dir-to-file commits (issue660).
Allow adding to dirstate files that clash with previously existing
but marked for removal. Protect from reintroducing clashes by revert.
This change doesn't address related issues with update. Current
workaround is to do "clean" update by manually removing conflicting
files/dirs from working directory.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Sat, 27 Oct 2007 16:27:55 +0400 |
parents | 91a522a69c13 |
children |
rev | line source |
---|---|
5251
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
1 #!/bin/sh |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
2 |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
3 "$TESTDIR/hghave" svn svn-bindings || exit 80 |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
4 |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
5 fix_path() |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
6 { |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
7 tr '\\' / |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
8 } |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
9 |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
10 echo "[extensions]" >> $HGRCPATH |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
11 echo "convert = " >> $HGRCPATH |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
12 |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
13 svnadmin create svn-repo |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
14 |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
15 echo % initial svn import |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
16 mkdir t |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
17 cd t |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
18 echo a > a |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
19 cd .. |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
20 |
5273
4287590a63af
Fix \ inside ` problem in test-convert-svn (avoids code duplication, too)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
5251
diff
changeset
|
21 svnpath=`pwd | fix_path` |
5251
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
22 # SVN wants all paths to start with a slash. Unfortunately, |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
23 # Windows ones don't. Handle that. |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
24 expr $svnpath : "\/" > /dev/null |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
25 if [ $? -ne 0 ]; then |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
26 svnpath='/'$svnpath |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
27 fi |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
28 |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
29 svnurl=file://$svnpath/svn-repo/trunk |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
30 svn import -m init t $svnurl | fix_path |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
31 |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
32 echo % update svn repository |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
33 svn co $svnurl t2 | fix_path |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
34 cd t2 |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
35 echo b >> a |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
36 echo b > b |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
37 svn add b |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
38 svn ci -m changea |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
39 cd .. |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
40 |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
41 echo % convert to hg once |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
42 hg convert $svnurl |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
43 |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
44 echo % update svn repository again |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
45 cd t2 |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
46 echo c >> a |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
47 echo c >> b |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
48 svn ci -m changeb |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
49 cd .. |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
50 |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
51 echo % test incremental conversion |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
52 hg convert $svnurl |
37c610c41ed6
Test svn repository conversion
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
53 |
5382
d7d395fb7cd5
convert_svn: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5273
diff
changeset
|
54 echo % test filemap |
d7d395fb7cd5
convert_svn: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5273
diff
changeset
|
55 echo 'include b' > filemap |
d7d395fb7cd5
convert_svn: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5273
diff
changeset
|
56 hg convert --filemap filemap $svnurl fmap |
d7d395fb7cd5
convert_svn: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5273
diff
changeset
|
57 echo '[extensions]' >> $HGRCPATH |
d7d395fb7cd5
convert_svn: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5273
diff
changeset
|
58 echo 'hgext.graphlog =' >> $HGRCPATH |
d7d395fb7cd5
convert_svn: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5273
diff
changeset
|
59 hg glog -R fmap --template '#rev# #desc|firstline# files: #files#\n' |
d7d395fb7cd5
convert_svn: add --filemap support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5273
diff
changeset
|
60 |
5462
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
61 ######################################## |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
62 |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
63 echo "# now tests that it works with trunk/branches/tags layout" |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
64 echo |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
65 echo % initial svn import |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
66 mkdir projA |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
67 cd projA |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
68 mkdir trunk |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
69 mkdir branches |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
70 mkdir tags |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
71 cd .. |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
72 |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
73 svnurl=file://$svnpath/svn-repo/projA |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
74 svn import -m "init projA" projA $svnurl | fix_path |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
75 |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
76 |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
77 echo % update svn repository |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
78 svn co $svnurl/trunk A | fix_path |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
79 cd A |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
80 echo hello > letter.txt |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
81 svn add letter.txt |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
82 svn ci -m hello |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
83 |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
84 echo world >> letter.txt |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
85 svn ci -m world |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
86 |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
87 svn copy -m "tag v0.1" $svnurl/trunk $svnurl/tags/v0.1 |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
88 |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
89 echo 'nice day today!' >> letter.txt |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
90 svn ci -m "nice day" |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
91 cd .. |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
92 |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
93 echo % convert to hg once |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
94 hg convert $svnurl A-hg |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
95 |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
96 echo % update svn repository again |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
97 cd A |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
98 echo "see second letter" >> letter.txt |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
99 echo "nice to meet you" > letter2.txt |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
100 svn add letter2.txt |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
101 svn ci -m "second letter" |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
102 |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
103 svn copy -m "tag v0.2" $svnurl/trunk $svnurl/tags/v0.2 |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
104 |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
105 echo "blah-blah-blah" >> letter2.txt |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
106 svn ci -m "work in progress" |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
107 cd .. |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
108 |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
109 echo % test incremental conversion |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
110 hg convert $svnurl A-hg |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
111 |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
112 cd A-hg |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
113 hg glog --template '#rev# #desc|firstline# files: #files#\n' |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
114 hg tags -q |
91a522a69c13
convert: svn -- fix tags handling
Kirill Smelkov <kirr@landau.phys.spbu.ru>
parents:
5382
diff
changeset
|
115 cd .. |