##// END OF EJS Templates
tests: unify test-convert-hg-svn
Matt Mackall -
r12527:9a0528fd default
parent child Browse files
Show More
@@ -1,79 +1,108 b''
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 echo "mq = " >> $HGRCPATH
13
14 svnpath=`pwd | fix_path`/svn-repo
15 svnadmin create "$svnpath"
16
1
17 cat > "$svnpath"/hooks/pre-revprop-change <<'EOF'
2 $ "$TESTDIR/hghave" svn svn-bindings || exit 80
18 #!/bin/sh
3 $ fix_path()
19
4 > {
20 REPOS="$1"
5 > tr '\\' /
21 REV="$2"
6 > }
22 USER="$3"
7 $ echo "[extensions]" >> $HGRCPATH
23 PROPNAME="$4"
8 $ echo "convert = " >> $HGRCPATH
24 ACTION="$5"
9 $ echo "mq = " >> $HGRCPATH
10 $ svnpath=`pwd | fix_path`/svn-repo
11 $ svnadmin create "$svnpath"
12 $ cat > "$svnpath"/hooks/pre-revprop-change <<EOF
13 > #!/bin/sh
14 >
15 > REPOS="$1"
16 > REV="$2"
17 > USER="$3"
18 > PROPNAME="$4"
19 > ACTION="$5"
20 >
21 > if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi
22 > if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-branch" ]; then exit 0; fi
23 > if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-rev" ]; then exit 0; fi
24 >
25 > echo "Changing prohibited revision property" >&2
26 > exit 1
27 > EOF
28 $ chmod +x "$svnpath"/hooks/pre-revprop-change
29 $
30 $ # SVN wants all paths to start with a slash. Unfortunately,
31 $ # Windows ones don't. Handle that.
32 $ svnurl="$svnpath"
33 $ expr "$svnurl" : "\/" > /dev/null || svnurl="/$svnurl"
34 $ svnurl="file://$svnurl"
35 $ svn co "$svnurl" "$svnpath"-wc
36 Checked out revision 0.
37 $ cd "$svnpath"-wc
38 $ echo a > a
39 $ svn add a
40 A a
41 $ svn ci -m'added a' a
42 Adding a
43 Transmitting file data .
44 Committed revision 1.
45 $ cd ..
25
46
26 if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi
47 initial roundtrip
27 if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-branch" ]; then exit 0; fi
28 if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-rev" ]; then exit 0; fi
29
30 echo "Changing prohibited revision property" >&2
31 exit 1
32 EOF
33 chmod +x "$svnpath"/hooks/pre-revprop-change
34
48
35 # SVN wants all paths to start with a slash. Unfortunately,
49 $ hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg | grep -v initializing
36 # Windows ones don't. Handle that.
50 scanning source...
37 svnurl="$svnpath"
51 sorting...
38 expr "$svnurl" : "\/" > /dev/null
52 converting...
39 if [ $? -ne 0 ]; then
53 0 added a
40 svnurl="/$svnurl"
54 $ hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
41 fi
55 scanning source...
42 svnurl="file://$svnurl"
56 sorting...
43 svn co "$svnurl" "$svnpath"-wc
57 converting...
44
58
45 cd "$svnpath"-wc
59 second roundtrip should do nothing
46 echo a > a
47 svn add a
48 svn ci -m'added a' a
49
60
50 cd ..
61 $ hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg
62 scanning source...
63 sorting...
64 converting...
65 $ hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
66 scanning source...
67 sorting...
68 converting...
51
69
52 echo % initial roundtrip
70 new hg rev
53 hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg | grep -v initializing
54 hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
55
71
56 echo % second roundtrip should do nothing
72 $ hg clone "$svnpath"-hg "$svnpath"-work
57 hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg
73 updating to branch default
58 hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
74 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
75 $ cd "$svnpath"-work
76 $ echo b > b
77 $ hg add b
78 $ hg ci -mb
59
79
60 echo % new hg rev
80 adding an empty revision
81
82 $ hg qnew -m emtpy empty
83 $ hg qfinish -a
84 $ cd ..
85
86 echo hg to svn
61
87
62 hg clone "$svnpath"-hg "$svnpath"-work
88 $ hg --cwd "$svnpath"-hg pull -q "$svnpath"-work
63 cd "$svnpath"-work
89 $ hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
64 echo b > b
90 scanning source...
65 hg add b
91 sorting...
66 hg ci -mb
92 converting...
67 echo '% adding an empty revision'
93 1 b
68 hg qnew -m emtpy empty
94 0 emtpy
69 hg qfinish -a
95
70 cd ..
96 svn back to hg should do nothing
71
97
72 echo % echo hg to svn
98 $ hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg
73 hg --cwd "$svnpath"-hg pull -q "$svnpath"-work
99 scanning source...
74 hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
100 sorting...
101 converting...
75
102
76 echo % svn back to hg should do nothing
103 hg back to svn should do nothing
77 hg convert -s svn -d hg "$svnpath"-wc "$svnpath"-hg
104
78 echo % hg back to svn should do nothing
105 $ hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
79 hg convert -s hg -d svn "$svnpath"-hg "$svnpath"-wc
106 scanning source...
107 sorting...
108 converting...
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now