Line # Revision Author
1 29 dpavlin #!/bin/sh -x
2
3 33 dpavlin dir=/dev/shm
4 test -e $dir || dir=/tmp/
5 29 dpavlin
6 33 dpavlin svn_rep=$dir/test-svn-rep/
7 svn_co=$dir/test-svn-co/
8 cvs_rep=$dir/test-cvs-rep/
9 cvs_co=$dir/test-cvs-co/
10
11 29 dpavlin test -d $svn_rep && rm -Rf $svn_rep
12 test -d $svn_co && rm -Rf $svn_co
13 test -d $cvs_rep && rm -Rf $cvs_rep
14 test -d $cvs_co && rm -Rf $cvs_co
15
16 svnadmin create $svn_rep || exit
17 mkdir $svn_co || exit
18 svn import -m "initial import" $svn_co file://$svn_rep || exit
19 rm -Rf $svn_co || exit
20 svn co file://$svn_rep $svn_co || exit
21 mkdir $svn_co/dir || exit
22 svn add $svn_co/dir || exit
23 svn commit -m "dir" $svn_co/dir || exit
24
25 mkdir "$svn_co/dir/with space" || exit
26 svn add "$svn_co/dir/with space" || exit
27 svn commit -m "dir with space" "$svn_co/dir/with space" || exit
28
29 ps ax > $svn_co/dir/file || exit
30 ps ax > "$svn_co/dir/file with spaces" || exit
31 svn add $svn_co/dir/file "$svn_co/dir/file with spaces" || exit
32 svn commit -m "files" $svn_co || exit
33
34 svn rm $svn_co/dir/file || exit
35 svn rm "$svn_co/dir/file with spaces" || exit
36 svn commit -m "delete files" $svn_co || exit
37
38 export CVSROOT=$cvs_rep
39
40 mkdir $cvs_rep || exit
41 cvs -f init || exit
42 mkdir $cvs_co || exit
43 cd $cvs_co || exit
44 cvs -f co . || exit
45 mkdir $cvs_co/dir || exit
46 cvs -f add dir $cvs_co/dir || exit
47 cvs -f commit -m "fake repository root" dir $cvs_co/dir || exit
48 echo 0 > $cvs_co/dir/.svnrev || exit
49 cvs -f add $cvs_co/dir/.svnrev || exit
50 cvs -f commit -m "fake existing repository" $cvs_co/dir/.svnrev || exit
51 cd - || exit
52
53 rm -Rf $cvs_co || exit
54 mkdir $cvs_co || exit
55 47 dpavlin cd $cvs_co && cvs -f co -P dir && cd - || exit
56 29 dpavlin
57 32 dpavlin function svn2cvs() {
58 ./svn2cvs.pl file://$svn_rep/dir $cvs_rep dir || exit
59 }
60 function update_cvs() {
61 47 dpavlin cd $cvs_co && cvs -f update -P -d dir && cd - || exit
62 32 dpavlin }
63 function update_svn() {
64 svn update $svn_co || exit
65 }
66 function update_all() {
67 update_svn
68 update_cvs
69 }
70 function test() {
71 svn2cvs
72 update_all
73 47 dpavlin diff -x .svn\* -x CVS -x '\.keepme' -urw $svn_co/dir/ $cvs_co/dir/ || exit
74 32 dpavlin }
75 29 dpavlin
76 32 dpavlin svn2cvs
77 update_cvs
78
79 29 dpavlin test -d "$cvs_co/dir/with space" || exit
80
81 ps ax > $svn_co/dir/file || exit
82 svn add $svn_co/dir/file || exit
83 svn commit -m "file again" $svn_co || exit
84
85 32 dpavlin test
86 29 dpavlin
87 svn rm $svn_co/dir/file || exit
88 svn commit -m "remove file again" $svn_co || exit
89
90 32 dpavlin test
91 29 dpavlin
92 30 dpavlin echo "new file" > $svn_co/dir/skip_add
93 33 dpavlin svn add $svn_co/dir/skip_add || exit
94 svn commit -m "add skip_add" $svn_co || exit
95 30 dpavlin
96 echo "modify file" >> $svn_co/dir/skip_add
97 33 dpavlin svn commit -m "modify skip_add" $svn_co || exit
98 30 dpavlin
99 cvs_rev=`cat $cvs_co/dir/.svnrev`
100 echo "*** skipping revision $cvs_rev ***"
101 echo `expr $cvs_rev + 1` > $cvs_co/dir/.svnrev || exit
102 cd $cvs_co && cvs -f commit -m "skip $cvs_rev" dir/.svnrev && cd - || exit
103
104 32 dpavlin test
105 30 dpavlin
106 33 dpavlin echo keep > $svn_co/dir/keep
107 svn add $svn_co/dir/keep
108 svn mkdir $svn_co/dir/keep-dir
109 echo keep > $svn_co/dir/keep-dir/keep
110 svn add $svn_co/dir/keep-dir/keep
111 svn commit -m "stuff to keep" $svn_co || exit
112
113 test
114
115 43 dpavlin svn rm $svn_co/dir/keep-dir/keep
116 svn commit -m "remove keep in keep-dir" $svn_co || exit
117
118 test
119
120 svn mv $svn_co/dir/keep $svn_co/dir/keep-dir/ || exit
121 svn commit -m "move keep into keep-dir" $svn_co || exit
122
123 test
124
125 44 dpavlin svn mv $svn_co/dir/keep-dir/keep $svn_co/dir/keep || exit
126 svn commit -m "move keep back" $svn_co || exit
127
128 test
129
130 33 dpavlin echo bar > $svn_co/dir/bar
131 echo baz > $svn_co/dir/baz
132 35 dpavlin svn mkdir $svn_co/dir/l1
133 echo bar > $svn_co/dir/l1/bar
134 echo baz > $svn_co/dir/l1/baz
135 svn mkdir $svn_co/dir/l1/l2
136 echo bar > $svn_co/dir/l1/l2/bar
137 echo baz > $svn_co/dir/l1/l2/baz
138 svn mkdir $svn_co/dir/l1/l2/l3
139 echo bar > $svn_co/dir/l1/l2/l3/bar
140 echo baz > $svn_co/dir/l1/l2/l3/baz
141
142 svn add $svn_co/dir/* $svn_co/dir/l1 $svn_co/dir/l1/* $svn_co/dir/l1/l2/* $svn_co/dir/l1/l2/l3/*
143 33 dpavlin svn commit -m "add a bunch of stuff" $svn_co || exit
144
145 test
146
147 svn rm $svn_co/dir/* || exit
148 47 dpavlin svn revert $svn_co/dir/keep $svn_co/dir/keep-dir{,/keep}
149 33 dpavlin svn commit -m "remove everything" $svn_co || exit
150
151 test