##// END OF EJS Templates
Fix test-convert-cvsnt-mergepoints so it works reliably....
Greg Ward -
r8821:c66e324d default
parent child Browse files
Show More
@@ -1,99 +1,104 b''
1 #!/bin/sh
1 #!/bin/sh
2
2
3 "$TESTDIR/hghave" cvs || exit 80
3 "$TESTDIR/hghave" cvs || exit 80
4
4
5 filterpath()
5 filterpath()
6 {
6 {
7 eval "$@" | sed "s:$CVSROOT:*REPO*:g"
7 eval "$@" | sed "s:$CVSROOT:*REPO*:g"
8 }
8 }
9
9
10 cvscall()
10 cvscall()
11 {
11 {
12 echo cvs -f "$@"
12 echo cvs -f "$@"
13 cvs -f "$@"
13 cvs -f "$@"
14 }
14 }
15
15
16 # output of 'cvs ci' varies unpredictably, so discard most of it
16 # output of 'cvs ci' varies unpredictably, so discard most of it
17 # -- just keep the part that matters
17 # -- just keep the part that matters
18 cvsci()
18 cvsci()
19 {
19 {
20 echo cvs -f ci "$@"
20 echo cvs -f ci -f "$@"
21 cvs -f ci "$@" 2>&1 | egrep "^(new|initial) revision:"
21 cvs -f ci -f "$@" 2>&1 | egrep "^(new|initial) revision:"
22 }
22 }
23
23
24 hgcat()
24 hgcat()
25 {
25 {
26 hg --cwd src-hg cat -r tip "$1"
26 hg --cwd src-hg cat -r tip "$1"
27 }
27 }
28
28
29 echo "[extensions]" >> $HGRCPATH
29 echo "[extensions]" >> $HGRCPATH
30 echo "convert = " >> $HGRCPATH
30 echo "convert = " >> $HGRCPATH
31 echo "graphlog = " >> $HGRCPATH
31 echo "graphlog = " >> $HGRCPATH
32 echo "[convert]" >> $HGRCPATH
32 echo "[convert]" >> $HGRCPATH
33 echo "cvsps=builtin" >> $HGRCPATH
33 echo "cvsps=builtin" >> $HGRCPATH
34
34
35 echo "% create cvs repository"
35 echo "% create cvs repository"
36 mkdir cvsmaster
36 mkdir cvsmaster
37 cd cvsmaster
37 cd cvsmaster
38 CVSROOT=`pwd`
38 CVSROOT=`pwd`
39 export CVSROOT
39 export CVSROOT
40 CVS_OPTIONS=-f
40 CVS_OPTIONS=-f
41 export CVS_OPTIONS
41 export CVS_OPTIONS
42 cd ..
42 cd ..
43 filterpath cvscall -Q -d "$CVSROOT" init
43 filterpath cvscall -Q -d "$CVSROOT" init
44
44
45 echo "% checkout #1: add foo.txt"
45 echo "% checkout #1: add foo.txt"
46 cvscall -Q checkout -d cvsworktmp .
46 cvscall -Q checkout -d cvsworktmp .
47 cd cvsworktmp
47 cd cvsworktmp
48 mkdir foo
48 mkdir foo
49 cvscall -Q add foo
49 cvscall -Q add foo
50 cd foo
50 cd foo
51 echo foo > foo.txt
51 echo foo > foo.txt
52 cvscall -Q add foo.txt
52 cvscall -Q add foo.txt
53 cvsci -m "foo.txt"
53 cvsci -m "add foo.txt" foo.txt
54
54
55 cd ../..
55 cd ../..
56 rm -rf cvsworktmp
56 rm -rf cvsworktmp
57
57
58 echo "% checkout #2: create MYBRANCH1 and modify foo.txt on it"
58 echo "% checkout #2: create MYBRANCH1 and modify foo.txt on it"
59 cvscall -Q checkout -d cvswork foo
59 cvscall -Q checkout -d cvswork foo
60
60
61 cd cvswork
61 cd cvswork
62
62
63 cvscall -q rtag -b -R MYBRANCH1 foo
63 cvscall -q rtag -b -R MYBRANCH1 foo
64 cvscall -Q update -P -r MYBRANCH1
64 cvscall -Q update -P -r MYBRANCH1
65 echo bar > foo.txt
65 echo bar > foo.txt
66 cvsci -m "bar"
66 cvsci -m "bar" foo.txt
67 echo baz > foo.txt
67 echo baz > foo.txt
68 cvsci -m "baz"
68 cvsci -m "baz" foo.txt
69
69
70 echo "% create MYBRANCH1_2 and modify foo.txt some more"
70 echo "% create MYBRANCH1_2 and modify foo.txt some more"
71 cvscall -q rtag -b -R -r MYBRANCH1 MYBRANCH1_2 foo
71 cvscall -q rtag -b -R -r MYBRANCH1 MYBRANCH1_2 foo
72 cvscall -Q update -P -r MYBRANCH1_2
72 cvscall -Q update -P -r MYBRANCH1_2
73
73
74 echo bazzie > foo.txt
74 echo bazzie > foo.txt
75 cvsci -m "bazzie"
75 cvsci -m "bazzie" foo.txt
76
76
77 echo "% create MYBRANCH1_1 and modify foo.txt yet again"
77 echo "% create MYBRANCH1_1 and modify foo.txt yet again"
78 cvscall -q rtag -b -R MYBRANCH1_1 foo
78 cvscall -q rtag -b -R MYBRANCH1_1 foo
79 cvscall -Q update -P -r MYBRANCH1_1
79 cvscall -Q update -P -r MYBRANCH1_1
80
80
81 echo quux > foo.txt
81 echo quux > foo.txt
82 cvsci -m "quux"
82 cvsci -m "quux" foo.txt
83
83
84 echo "% merge MYBRANCH1 to MYBRANCH1_1"
84 echo "% merge MYBRANCH1 to MYBRANCH1_1"
85 filterpath cvscall -Q update -P -jMYBRANCH1
85 filterpath cvscall -Q update -P -jMYBRANCH1
86 # carefully placed sleep to dodge cvs bug (optimization?) where it
87 # sometimes ignores a "commit" command if it comes too fast (the -f
88 # option in cvsci seems to work for all the other commits in this
89 # script)
90 sleep 1
86 echo xyzzy > foo.txt
91 echo xyzzy > foo.txt
87 cvsci -m "merge1"
92 cvsci -m "merge1+clobber" foo.txt
88
93
89 echo "% return to trunk and merge MYBRANCH1_2"
94 echo "% return to trunk and merge MYBRANCH1_2"
90 cvscall -Q update -P -A
95 cvscall -Q update -P -A
91 filterpath cvscall -Q update -P -jMYBRANCH1_2
96 filterpath cvscall -Q update -P -jMYBRANCH1_2
92 cvsci -m "merge2"
97 cvsci -m "merge2" foo.txt
93
98
94 REALCVS=`which cvs`
99 REALCVS=`which cvs`
95 echo "for x in \$*; do if [ \"\$x\" = \"rlog\" ]; then echo \"RCS file: $CVSROOT/foo/foo.txt,v\"; cat $TESTDIR/test-convert-cvsnt-mergepoints.rlog; exit 0; fi; done; $REALCVS \$*" > ../cvs
100 echo "for x in \$*; do if [ \"\$x\" = \"rlog\" ]; then echo \"RCS file: $CVSROOT/foo/foo.txt,v\"; cat $TESTDIR/test-convert-cvsnt-mergepoints.rlog; exit 0; fi; done; $REALCVS \$*" > ../cvs
96 chmod +x ../cvs
101 chmod +x ../cvs
97 PATH=..:${PATH} hg debugcvsps --parents foo | sed -e 's/Author:.*/Author:/' -e 's/Date:.*/Date:/'
102 PATH=..:${PATH} hg debugcvsps --parents foo | sed -e 's/Author:.*/Author:/' -e 's/Date:.*/Date:/'
98
103
99 cd ..
104 cd ..
@@ -1,140 +1,140 b''
1 % create cvs repository
1 % create cvs repository
2 cvs -f -Q -d *REPO* init
2 cvs -f -Q -d *REPO* init
3 % checkout #1: add foo.txt
3 % checkout #1: add foo.txt
4 cvs -f -Q checkout -d cvsworktmp .
4 cvs -f -Q checkout -d cvsworktmp .
5 cvs -f -Q add foo
5 cvs -f -Q add foo
6 cvs -f -Q add foo.txt
6 cvs -f -Q add foo.txt
7 cvs -f ci -m foo.txt
7 cvs -f ci -f -m add foo.txt foo.txt
8 initial revision: 1.1
8 initial revision: 1.1
9 % checkout #2: create MYBRANCH1 and modify foo.txt on it
9 % checkout #2: create MYBRANCH1 and modify foo.txt on it
10 cvs -f -Q checkout -d cvswork foo
10 cvs -f -Q checkout -d cvswork foo
11 cvs -f -q rtag -b -R MYBRANCH1 foo
11 cvs -f -q rtag -b -R MYBRANCH1 foo
12 cvs -f -Q update -P -r MYBRANCH1
12 cvs -f -Q update -P -r MYBRANCH1
13 cvs -f ci -m bar
13 cvs -f ci -f -m bar foo.txt
14 new revision: 1.1.2.1; previous revision: 1.1
14 new revision: 1.1.2.1; previous revision: 1.1
15 cvs -f ci -m baz
15 cvs -f ci -f -m baz foo.txt
16 new revision: 1.1.2.2; previous revision: 1.1.2.1
16 new revision: 1.1.2.2; previous revision: 1.1.2.1
17 % create MYBRANCH1_2 and modify foo.txt some more
17 % create MYBRANCH1_2 and modify foo.txt some more
18 cvs -f -q rtag -b -R -r MYBRANCH1 MYBRANCH1_2 foo
18 cvs -f -q rtag -b -R -r MYBRANCH1 MYBRANCH1_2 foo
19 cvs -f -Q update -P -r MYBRANCH1_2
19 cvs -f -Q update -P -r MYBRANCH1_2
20 cvs -f ci -m bazzie
20 cvs -f ci -f -m bazzie foo.txt
21 new revision: 1.1.2.2.2.1; previous revision: 1.1.2.2
21 new revision: 1.1.2.2.2.1; previous revision: 1.1.2.2
22 % create MYBRANCH1_1 and modify foo.txt yet again
22 % create MYBRANCH1_1 and modify foo.txt yet again
23 cvs -f -q rtag -b -R MYBRANCH1_1 foo
23 cvs -f -q rtag -b -R MYBRANCH1_1 foo
24 cvs -f -Q update -P -r MYBRANCH1_1
24 cvs -f -Q update -P -r MYBRANCH1_1
25 cvs -f ci -m quux
25 cvs -f ci -f -m quux foo.txt
26 new revision: 1.1.4.1; previous revision: 1.1
26 new revision: 1.1.4.1; previous revision: 1.1
27 % merge MYBRANCH1 to MYBRANCH1_1
27 % merge MYBRANCH1 to MYBRANCH1_1
28 rcsmerge: warning: conflicts during merge
28 rcsmerge: warning: conflicts during merge
29 cvs -f -Q update -P -jMYBRANCH1
29 cvs -f -Q update -P -jMYBRANCH1
30 RCS file: *REPO*/foo/foo.txt,v
30 RCS file: *REPO*/foo/foo.txt,v
31 retrieving revision 1.1
31 retrieving revision 1.1
32 retrieving revision 1.1.2.2
32 retrieving revision 1.1.2.2
33 Merging differences between 1.1 and 1.1.2.2 into foo.txt
33 Merging differences between 1.1 and 1.1.2.2 into foo.txt
34 cvs -f ci -m merge1
34 cvs -f ci -f -m merge1+clobber foo.txt
35 new revision: 1.1.4.2; previous revision: 1.1.4.1
35 new revision: 1.1.4.2; previous revision: 1.1.4.1
36 % return to trunk and merge MYBRANCH1_2
36 % return to trunk and merge MYBRANCH1_2
37 cvs -f -Q update -P -A
37 cvs -f -Q update -P -A
38 cvs -f -Q update -P -jMYBRANCH1_2
38 cvs -f -Q update -P -jMYBRANCH1_2
39 RCS file: *REPO*/foo/foo.txt,v
39 RCS file: *REPO*/foo/foo.txt,v
40 retrieving revision 1.1
40 retrieving revision 1.1
41 retrieving revision 1.1.2.2.2.1
41 retrieving revision 1.1.2.2.2.1
42 Merging differences between 1.1 and 1.1.2.2.2.1 into foo.txt
42 Merging differences between 1.1 and 1.1.2.2.2.1 into foo.txt
43 cvs -f ci -m merge2
43 cvs -f ci -f -m merge2 foo.txt
44 new revision: 1.2; previous revision: 1.1
44 new revision: 1.2; previous revision: 1.1
45 collecting CVS rlog
45 collecting CVS rlog
46 7 log entries
46 7 log entries
47 creating changesets
47 creating changesets
48 7 changeset entries
48 7 changeset entries
49 ---------------------
49 ---------------------
50 PatchSet 1
50 PatchSet 1
51 Date:
51 Date:
52 Author:
52 Author:
53 Branch: HEAD
53 Branch: HEAD
54 Tag: (none)
54 Tag: (none)
55 Branchpoints: MYBRANCH1_1, MYBRANCH1
55 Branchpoints: MYBRANCH1_1, MYBRANCH1
56 Log:
56 Log:
57 foo.txt
57 foo.txt
58
58
59 Members:
59 Members:
60 foo.txt:INITIAL->1.1
60 foo.txt:INITIAL->1.1
61
61
62 ---------------------
62 ---------------------
63 PatchSet 2
63 PatchSet 2
64 Date:
64 Date:
65 Author:
65 Author:
66 Branch: MYBRANCH1
66 Branch: MYBRANCH1
67 Tag: (none)
67 Tag: (none)
68 Parent: 1
68 Parent: 1
69 Log:
69 Log:
70 bar
70 bar
71
71
72 Members:
72 Members:
73 foo.txt:1.1->1.1.2.1
73 foo.txt:1.1->1.1.2.1
74
74
75 ---------------------
75 ---------------------
76 PatchSet 3
76 PatchSet 3
77 Date:
77 Date:
78 Author:
78 Author:
79 Branch: MYBRANCH1
79 Branch: MYBRANCH1
80 Tag: (none)
80 Tag: (none)
81 Branchpoints: MYBRANCH1_2
81 Branchpoints: MYBRANCH1_2
82 Parent: 2
82 Parent: 2
83 Log:
83 Log:
84 baz
84 baz
85
85
86 Members:
86 Members:
87 foo.txt:1.1.2.1->1.1.2.2
87 foo.txt:1.1.2.1->1.1.2.2
88
88
89 ---------------------
89 ---------------------
90 PatchSet 4
90 PatchSet 4
91 Date:
91 Date:
92 Author:
92 Author:
93 Branch: MYBRANCH1_1
93 Branch: MYBRANCH1_1
94 Tag: (none)
94 Tag: (none)
95 Parent: 1
95 Parent: 1
96 Log:
96 Log:
97 quux
97 quux
98
98
99 Members:
99 Members:
100 foo.txt:1.1->1.1.4.1
100 foo.txt:1.1->1.1.4.1
101
101
102 ---------------------
102 ---------------------
103 PatchSet 5
103 PatchSet 5
104 Date:
104 Date:
105 Author:
105 Author:
106 Branch: MYBRANCH1_2
106 Branch: MYBRANCH1_2
107 Tag: (none)
107 Tag: (none)
108 Parent: 3
108 Parent: 3
109 Log:
109 Log:
110 bazzie
110 bazzie
111
111
112 Members:
112 Members:
113 foo.txt:1.1.2.2->1.1.2.2.2.1
113 foo.txt:1.1.2.2->1.1.2.2.2.1
114
114
115 ---------------------
115 ---------------------
116 PatchSet 6
116 PatchSet 6
117 Date:
117 Date:
118 Author:
118 Author:
119 Branch: HEAD
119 Branch: HEAD
120 Tag: (none)
120 Tag: (none)
121 Parents: 1,5
121 Parents: 1,5
122 Log:
122 Log:
123 merge
123 merge
124
124
125 Members:
125 Members:
126 foo.txt:1.1->1.2
126 foo.txt:1.1->1.2
127
127
128 ---------------------
128 ---------------------
129 PatchSet 7
129 PatchSet 7
130 Date:
130 Date:
131 Author:
131 Author:
132 Branch: MYBRANCH1_1
132 Branch: MYBRANCH1_1
133 Tag: (none)
133 Tag: (none)
134 Parents: 4,3
134 Parents: 4,3
135 Log:
135 Log:
136 merge
136 merge
137
137
138 Members:
138 Members:
139 foo.txt:1.1.4.1->1.1.4.2
139 foo.txt:1.1.4.1->1.1.4.2
140
140
General Comments 0
You need to be logged in to leave comments. Login now