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 |
|
|
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 |
|
|
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