1 |
#!/bin/sh -x |
2 |
|
3 |
svn_rep=`pwd`/test-svn-rep/ |
4 |
svn_co=`pwd`/test-svn-co/ |
5 |
cvs_rep=`pwd`/test-cvs-rep/ |
6 |
cvs_co=`pwd`/test-cvs-co/ |
7 |
|
8 |
test -d $svn_rep && rm -Rf $svn_rep |
9 |
test -d $svn_co && rm -Rf $svn_co |
10 |
test -d $cvs_rep && rm -Rf $cvs_rep |
11 |
test -d $cvs_co && rm -Rf $cvs_co |
12 |
|
13 |
svnadmin create $svn_rep || exit |
14 |
mkdir $svn_co || exit |
15 |
svn import -m "initial import" $svn_co file://$svn_rep || exit |
16 |
rm -Rf $svn_co || exit |
17 |
svn co file://$svn_rep $svn_co || exit |
18 |
mkdir $svn_co/dir || exit |
19 |
svn add $svn_co/dir || exit |
20 |
svn commit -m "dir" $svn_co/dir || exit |
21 |
|
22 |
mkdir "$svn_co/dir/with space" || exit |
23 |
svn add "$svn_co/dir/with space" || exit |
24 |
svn commit -m "dir with space" "$svn_co/dir/with space" || exit |
25 |
|
26 |
ps ax > $svn_co/dir/file || exit |
27 |
ps ax > "$svn_co/dir/file with spaces" || exit |
28 |
svn add $svn_co/dir/file "$svn_co/dir/file with spaces" || exit |
29 |
svn commit -m "files" $svn_co || exit |
30 |
|
31 |
svn rm $svn_co/dir/file || exit |
32 |
svn rm "$svn_co/dir/file with spaces" || exit |
33 |
svn commit -m "delete files" $svn_co || exit |
34 |
|
35 |
export CVSROOT=$cvs_rep |
36 |
|
37 |
mkdir $cvs_rep || exit |
38 |
cvs -f init || exit |
39 |
mkdir $cvs_co || exit |
40 |
cd $cvs_co || exit |
41 |
cvs -f co . || exit |
42 |
mkdir $cvs_co/dir || exit |
43 |
cvs -f add dir $cvs_co/dir || exit |
44 |
cvs -f commit -m "fake repository root" dir $cvs_co/dir || exit |
45 |
echo 0 > $cvs_co/dir/.svnrev || exit |
46 |
cvs -f add $cvs_co/dir/.svnrev || exit |
47 |
cvs -f commit -m "fake existing repository" $cvs_co/dir/.svnrev || exit |
48 |
cd - || exit |
49 |
|
50 |
rm -Rf $cvs_co || exit |
51 |
mkdir $cvs_co || exit |
52 |
cd $cvs_co && cvs -f co dir && cd - || exit |
53 |
|
54 |
function svn2cvs() { |
55 |
./svn2cvs.pl file://$svn_rep/dir $cvs_rep dir || exit |
56 |
} |
57 |
function update_cvs() { |
58 |
cd $cvs_co && cvs -f update -d dir && cd - || exit |
59 |
} |
60 |
function update_svn() { |
61 |
svn update $svn_co || exit |
62 |
} |
63 |
function update_all() { |
64 |
update_svn |
65 |
update_cvs |
66 |
} |
67 |
function test() { |
68 |
svn2cvs |
69 |
update_all |
70 |
diff -x .svn* -x CVS -urw $svn_co/dir/ $cvs_co/dir/ || exit |
71 |
} |
72 |
|
73 |
svn2cvs |
74 |
update_cvs |
75 |
|
76 |
test -d "$cvs_co/dir/with space" || exit |
77 |
|
78 |
ps ax > $svn_co/dir/file || exit |
79 |
svn add $svn_co/dir/file || exit |
80 |
svn commit -m "file again" $svn_co || exit |
81 |
|
82 |
test |
83 |
|
84 |
svn rm $svn_co/dir/file || exit |
85 |
svn commit -m "remove file again" $svn_co || exit |
86 |
|
87 |
test |
88 |
|
89 |
echo "new file" > $svn_co/dir/skip_add |
90 |
svn add $svn_co/dir/skip_add || exit; |
91 |
svn commit -m "add skip_add" $svn_co || exit; |
92 |
|
93 |
echo "modify file" >> $svn_co/dir/skip_add |
94 |
svn commit -m "modify skip_add" $svn_co || exit; |
95 |
|
96 |
cvs_rev=`cat $cvs_co/dir/.svnrev` |
97 |
echo "*** skipping revision $cvs_rev ***" |
98 |
echo `expr $cvs_rev + 1` > $cvs_co/dir/.svnrev || exit |
99 |
cd $cvs_co && cvs -f commit -m "skip $cvs_rev" dir/.svnrev && cd - || exit |
100 |
|
101 |
test |
102 |
|