Mercurial > hg
comparison tests/test-convert-svn-source @ 5513:f0c58fd4b798
convert: add support for Subversion as a sink
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Wed, 07 Nov 2007 18:26:59 -0800 |
parents | tests/test-convert-svn@91a522a69c13 |
children | 7eb1146b72ec |
comparison
equal
deleted
inserted
replaced
5512:8cd26ccc68f8 | 5513:f0c58fd4b798 |
---|---|
1 #!/bin/sh | |
2 | |
3 "$TESTDIR/hghave" svn svn-bindings || exit 80 | |
4 | |
5 fix_path() | |
6 { | |
7 tr '\\' / | |
8 } | |
9 | |
10 echo "[extensions]" >> $HGRCPATH | |
11 echo "convert = " >> $HGRCPATH | |
12 | |
13 svnadmin create svn-repo | |
14 | |
15 echo % initial svn import | |
16 mkdir t | |
17 cd t | |
18 echo a > a | |
19 cd .. | |
20 | |
21 svnpath=`pwd | fix_path` | |
22 # SVN wants all paths to start with a slash. Unfortunately, | |
23 # Windows ones don't. Handle that. | |
24 expr $svnpath : "\/" > /dev/null | |
25 if [ $? -ne 0 ]; then | |
26 svnpath='/'$svnpath | |
27 fi | |
28 | |
29 svnurl=file://$svnpath/svn-repo/trunk | |
30 svn import -m init t $svnurl | fix_path | |
31 | |
32 echo % update svn repository | |
33 svn co $svnurl t2 | fix_path | |
34 cd t2 | |
35 echo b >> a | |
36 echo b > b | |
37 svn add b | |
38 svn ci -m changea | |
39 cd .. | |
40 | |
41 echo % convert to hg once | |
42 hg convert $svnurl | |
43 | |
44 echo % update svn repository again | |
45 cd t2 | |
46 echo c >> a | |
47 echo c >> b | |
48 svn ci -m changeb | |
49 cd .. | |
50 | |
51 echo % test incremental conversion | |
52 hg convert $svnurl | |
53 | |
54 echo % test filemap | |
55 echo 'include b' > filemap | |
56 hg convert --filemap filemap $svnurl fmap | |
57 echo '[extensions]' >> $HGRCPATH | |
58 echo 'hgext.graphlog =' >> $HGRCPATH | |
59 hg glog -R fmap --template '#rev# #desc|firstline# files: #files#\n' | |
60 | |
61 ######################################## | |
62 | |
63 echo "# now tests that it works with trunk/branches/tags layout" | |
64 echo | |
65 echo % initial svn import | |
66 mkdir projA | |
67 cd projA | |
68 mkdir trunk | |
69 mkdir branches | |
70 mkdir tags | |
71 cd .. | |
72 | |
73 svnurl=file://$svnpath/svn-repo/projA | |
74 svn import -m "init projA" projA $svnurl | fix_path | |
75 | |
76 | |
77 echo % update svn repository | |
78 svn co $svnurl/trunk A | fix_path | |
79 cd A | |
80 echo hello > letter.txt | |
81 svn add letter.txt | |
82 svn ci -m hello | |
83 | |
84 echo world >> letter.txt | |
85 svn ci -m world | |
86 | |
87 svn copy -m "tag v0.1" $svnurl/trunk $svnurl/tags/v0.1 | |
88 | |
89 echo 'nice day today!' >> letter.txt | |
90 svn ci -m "nice day" | |
91 cd .. | |
92 | |
93 echo % convert to hg once | |
94 hg convert $svnurl A-hg | |
95 | |
96 echo % update svn repository again | |
97 cd A | |
98 echo "see second letter" >> letter.txt | |
99 echo "nice to meet you" > letter2.txt | |
100 svn add letter2.txt | |
101 svn ci -m "second letter" | |
102 | |
103 svn copy -m "tag v0.2" $svnurl/trunk $svnurl/tags/v0.2 | |
104 | |
105 echo "blah-blah-blah" >> letter2.txt | |
106 svn ci -m "work in progress" | |
107 cd .. | |
108 | |
109 echo % test incremental conversion | |
110 hg convert $svnurl A-hg | |
111 | |
112 cd A-hg | |
113 hg glog --template '#rev# #desc|firstline# files: #files#\n' | |
114 hg tags -q | |
115 cd .. |