##// END OF EJS Templates
tests: fix deprecated use of hg debugdata/debugindex...
Sune Foldager -
r14182:ec5886db default
parent child Browse files
Show More
@@ -1,53 +1,53 b''
1 b51a8138292a introduced a regression where we would mention in the
1 b51a8138292a introduced a regression where we would mention in the
2 changelog executable files added by the second parent of a merge. Test
2 changelog executable files added by the second parent of a merge. Test
3 that that doesn't happen anymore
3 that that doesn't happen anymore
4
4
5 $ "$TESTDIR/hghave" execbit || exit 80
5 $ "$TESTDIR/hghave" execbit || exit 80
6
6
7 $ hg init repo
7 $ hg init repo
8 $ cd repo
8 $ cd repo
9 $ echo foo > foo
9 $ echo foo > foo
10 $ hg ci -qAm 'add foo'
10 $ hg ci -qAm 'add foo'
11
11
12 $ echo bar > bar
12 $ echo bar > bar
13 $ chmod +x bar
13 $ chmod +x bar
14 $ hg ci -qAm 'add bar'
14 $ hg ci -qAm 'add bar'
15
15
16 manifest of p2:
16 manifest of p2:
17
17
18 $ hg manifest
18 $ hg manifest
19 bar
19 bar
20 foo
20 foo
21
21
22 $ hg up -qC 0
22 $ hg up -qC 0
23 $ echo >> foo
23 $ echo >> foo
24 $ hg ci -m 'change foo'
24 $ hg ci -m 'change foo'
25 created new head
25 created new head
26
26
27 manifest of p1:
27 manifest of p1:
28
28
29 $ hg manifest
29 $ hg manifest
30 foo
30 foo
31
31
32 $ hg merge
32 $ hg merge
33 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
33 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
34 (branch merge, don't forget to commit)
34 (branch merge, don't forget to commit)
35 $ hg ci -m 'merge'
35 $ hg ci -m 'merge'
36
36
37 this should not mention bar:
37 this should not mention bar:
38
38
39 $ hg tip -v
39 $ hg tip -v
40 changeset: 3:ef2fc9b4a51b
40 changeset: 3:ef2fc9b4a51b
41 tag: tip
41 tag: tip
42 parent: 2:ed1b79f46b9a
42 parent: 2:ed1b79f46b9a
43 parent: 1:d394a8db219b
43 parent: 1:d394a8db219b
44 user: test
44 user: test
45 date: Thu Jan 01 00:00:00 1970 +0000
45 date: Thu Jan 01 00:00:00 1970 +0000
46 description:
46 description:
47 merge
47 merge
48
48
49
49
50
50
51 $ hg debugindex .hg/store/data/bar.i
51 $ hg debugindex bar
52 rev offset length base linkrev nodeid p1 p2
52 rev offset length base linkrev nodeid p1 p2
53 0 0 5 0 1 b004912a8510 000000000000 000000000000
53 0 0 5 0 1 b004912a8510 000000000000 000000000000
@@ -1,220 +1,220 b''
1 $ hg init test
1 $ hg init test
2 $ cd test
2 $ cd test
3
3
4 $ echo 0 >> afile
4 $ echo 0 >> afile
5 $ hg add afile
5 $ hg add afile
6 $ hg commit -m "0.0"
6 $ hg commit -m "0.0"
7
7
8 $ echo 1 >> afile
8 $ echo 1 >> afile
9 $ hg commit -m "0.1"
9 $ hg commit -m "0.1"
10
10
11 $ echo 2 >> afile
11 $ echo 2 >> afile
12 $ hg commit -m "0.2"
12 $ hg commit -m "0.2"
13
13
14 $ echo 3 >> afile
14 $ echo 3 >> afile
15 $ hg commit -m "0.3"
15 $ hg commit -m "0.3"
16
16
17 $ hg update -C 0
17 $ hg update -C 0
18 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
18 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
19
19
20 $ echo 1 >> afile
20 $ echo 1 >> afile
21 $ hg commit -m "1.1"
21 $ hg commit -m "1.1"
22 created new head
22 created new head
23
23
24 $ echo 2 >> afile
24 $ echo 2 >> afile
25 $ hg commit -m "1.2"
25 $ hg commit -m "1.2"
26
26
27 $ echo a line > fred
27 $ echo a line > fred
28 $ echo 3 >> afile
28 $ echo 3 >> afile
29 $ hg add fred
29 $ hg add fred
30 $ hg commit -m "1.3"
30 $ hg commit -m "1.3"
31 $ hg mv afile adifferentfile
31 $ hg mv afile adifferentfile
32 $ hg commit -m "1.3m"
32 $ hg commit -m "1.3m"
33
33
34 $ hg update -C 3
34 $ hg update -C 3
35 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
35 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
36
36
37 $ hg mv afile anotherfile
37 $ hg mv afile anotherfile
38 $ hg commit -m "0.3m"
38 $ hg commit -m "0.3m"
39
39
40 $ hg debugindex -f 1 .hg/store/data/afile.i
40 $ hg debugindex -f 1 afile
41 rev flag offset length size base link p1 p2 nodeid
41 rev flag offset length size base link p1 p2 nodeid
42 0 0000 0 3 2 0 0 -1 -1 362fef284ce2
42 0 0000 0 3 2 0 0 -1 -1 362fef284ce2
43 1 0000 3 5 4 1 1 0 -1 125144f7e028
43 1 0000 3 5 4 1 1 0 -1 125144f7e028
44 2 0000 8 7 6 2 2 1 -1 4c982badb186
44 2 0000 8 7 6 2 2 1 -1 4c982badb186
45 3 0000 15 9 8 3 3 2 -1 19b1fc555737
45 3 0000 15 9 8 3 3 2 -1 19b1fc555737
46
46
47 $ hg debugindex .hg/store/data/adifferentfile.i
47 $ hg debugindex adifferentfile
48 rev offset length base linkrev nodeid p1 p2
48 rev offset length base linkrev nodeid p1 p2
49 0 0 75 0 7 2565f3199a74 000000000000 000000000000
49 0 0 75 0 7 2565f3199a74 000000000000 000000000000
50
50
51 $ hg debugindex .hg/store/data/anotherfile.i
51 $ hg debugindex anotherfile
52 rev offset length base linkrev nodeid p1 p2
52 rev offset length base linkrev nodeid p1 p2
53 0 0 75 0 8 2565f3199a74 000000000000 000000000000
53 0 0 75 0 8 2565f3199a74 000000000000 000000000000
54
54
55 $ hg debugindex .hg/store/data/fred.i
55 $ hg debugindex fred
56 rev offset length base linkrev nodeid p1 p2
56 rev offset length base linkrev nodeid p1 p2
57 0 0 8 0 6 12ab3bcc5ea4 000000000000 000000000000
57 0 0 8 0 6 12ab3bcc5ea4 000000000000 000000000000
58
58
59 $ hg debugindex .hg/store/00manifest.i
59 $ hg debugindex .hg/store/00manifest.i
60 rev offset length base linkrev nodeid p1 p2
60 rev offset length base linkrev nodeid p1 p2
61 0 0 48 0 0 43eadb1d2d06 000000000000 000000000000
61 0 0 48 0 0 43eadb1d2d06 000000000000 000000000000
62 1 48 48 1 1 8b89697eba2c 43eadb1d2d06 000000000000
62 1 48 48 1 1 8b89697eba2c 43eadb1d2d06 000000000000
63 2 96 48 2 2 626a32663c2f 8b89697eba2c 000000000000
63 2 96 48 2 2 626a32663c2f 8b89697eba2c 000000000000
64 3 144 48 3 3 f54c32f13478 626a32663c2f 000000000000
64 3 144 48 3 3 f54c32f13478 626a32663c2f 000000000000
65 4 192 58 3 6 de68e904d169 626a32663c2f 000000000000
65 4 192 58 3 6 de68e904d169 626a32663c2f 000000000000
66 5 250 68 3 7 09bb521d218d de68e904d169 000000000000
66 5 250 68 3 7 09bb521d218d de68e904d169 000000000000
67 6 318 54 6 8 1fde233dfb0f f54c32f13478 000000000000
67 6 318 54 6 8 1fde233dfb0f f54c32f13478 000000000000
68
68
69 $ hg verify
69 $ hg verify
70 checking changesets
70 checking changesets
71 checking manifests
71 checking manifests
72 crosschecking files in changesets and manifests
72 crosschecking files in changesets and manifests
73 checking files
73 checking files
74 4 files, 9 changesets, 7 total revisions
74 4 files, 9 changesets, 7 total revisions
75
75
76 $ cd ..
76 $ cd ..
77
77
78 $ for i in 0 1 2 3 4 5 6 7 8; do
78 $ for i in 0 1 2 3 4 5 6 7 8; do
79 > echo
79 > echo
80 > echo ---- hg clone -r "$i" test test-"$i"
80 > echo ---- hg clone -r "$i" test test-"$i"
81 > hg clone -r "$i" test test-"$i"
81 > hg clone -r "$i" test test-"$i"
82 > cd test-"$i"
82 > cd test-"$i"
83 > hg verify
83 > hg verify
84 > cd ..
84 > cd ..
85 > done
85 > done
86
86
87 ---- hg clone -r 0 test test-0
87 ---- hg clone -r 0 test test-0
88 adding changesets
88 adding changesets
89 adding manifests
89 adding manifests
90 adding file changes
90 adding file changes
91 added 1 changesets with 1 changes to 1 files
91 added 1 changesets with 1 changes to 1 files
92 updating to branch default
92 updating to branch default
93 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
93 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
94 checking changesets
94 checking changesets
95 checking manifests
95 checking manifests
96 crosschecking files in changesets and manifests
96 crosschecking files in changesets and manifests
97 checking files
97 checking files
98 1 files, 1 changesets, 1 total revisions
98 1 files, 1 changesets, 1 total revisions
99
99
100 ---- hg clone -r 1 test test-1
100 ---- hg clone -r 1 test test-1
101 adding changesets
101 adding changesets
102 adding manifests
102 adding manifests
103 adding file changes
103 adding file changes
104 added 2 changesets with 2 changes to 1 files
104 added 2 changesets with 2 changes to 1 files
105 updating to branch default
105 updating to branch default
106 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
106 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
107 checking changesets
107 checking changesets
108 checking manifests
108 checking manifests
109 crosschecking files in changesets and manifests
109 crosschecking files in changesets and manifests
110 checking files
110 checking files
111 1 files, 2 changesets, 2 total revisions
111 1 files, 2 changesets, 2 total revisions
112
112
113 ---- hg clone -r 2 test test-2
113 ---- hg clone -r 2 test test-2
114 adding changesets
114 adding changesets
115 adding manifests
115 adding manifests
116 adding file changes
116 adding file changes
117 added 3 changesets with 3 changes to 1 files
117 added 3 changesets with 3 changes to 1 files
118 updating to branch default
118 updating to branch default
119 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
119 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
120 checking changesets
120 checking changesets
121 checking manifests
121 checking manifests
122 crosschecking files in changesets and manifests
122 crosschecking files in changesets and manifests
123 checking files
123 checking files
124 1 files, 3 changesets, 3 total revisions
124 1 files, 3 changesets, 3 total revisions
125
125
126 ---- hg clone -r 3 test test-3
126 ---- hg clone -r 3 test test-3
127 adding changesets
127 adding changesets
128 adding manifests
128 adding manifests
129 adding file changes
129 adding file changes
130 added 4 changesets with 4 changes to 1 files
130 added 4 changesets with 4 changes to 1 files
131 updating to branch default
131 updating to branch default
132 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
132 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
133 checking changesets
133 checking changesets
134 checking manifests
134 checking manifests
135 crosschecking files in changesets and manifests
135 crosschecking files in changesets and manifests
136 checking files
136 checking files
137 1 files, 4 changesets, 4 total revisions
137 1 files, 4 changesets, 4 total revisions
138
138
139 ---- hg clone -r 4 test test-4
139 ---- hg clone -r 4 test test-4
140 adding changesets
140 adding changesets
141 adding manifests
141 adding manifests
142 adding file changes
142 adding file changes
143 added 2 changesets with 2 changes to 1 files
143 added 2 changesets with 2 changes to 1 files
144 updating to branch default
144 updating to branch default
145 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
145 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
146 checking changesets
146 checking changesets
147 checking manifests
147 checking manifests
148 crosschecking files in changesets and manifests
148 crosschecking files in changesets and manifests
149 checking files
149 checking files
150 1 files, 2 changesets, 2 total revisions
150 1 files, 2 changesets, 2 total revisions
151
151
152 ---- hg clone -r 5 test test-5
152 ---- hg clone -r 5 test test-5
153 adding changesets
153 adding changesets
154 adding manifests
154 adding manifests
155 adding file changes
155 adding file changes
156 added 3 changesets with 3 changes to 1 files
156 added 3 changesets with 3 changes to 1 files
157 updating to branch default
157 updating to branch default
158 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
158 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
159 checking changesets
159 checking changesets
160 checking manifests
160 checking manifests
161 crosschecking files in changesets and manifests
161 crosschecking files in changesets and manifests
162 checking files
162 checking files
163 1 files, 3 changesets, 3 total revisions
163 1 files, 3 changesets, 3 total revisions
164
164
165 ---- hg clone -r 6 test test-6
165 ---- hg clone -r 6 test test-6
166 adding changesets
166 adding changesets
167 adding manifests
167 adding manifests
168 adding file changes
168 adding file changes
169 added 4 changesets with 5 changes to 2 files
169 added 4 changesets with 5 changes to 2 files
170 updating to branch default
170 updating to branch default
171 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
171 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
172 checking changesets
172 checking changesets
173 checking manifests
173 checking manifests
174 crosschecking files in changesets and manifests
174 crosschecking files in changesets and manifests
175 checking files
175 checking files
176 2 files, 4 changesets, 5 total revisions
176 2 files, 4 changesets, 5 total revisions
177
177
178 ---- hg clone -r 7 test test-7
178 ---- hg clone -r 7 test test-7
179 adding changesets
179 adding changesets
180 adding manifests
180 adding manifests
181 adding file changes
181 adding file changes
182 added 5 changesets with 6 changes to 3 files
182 added 5 changesets with 6 changes to 3 files
183 updating to branch default
183 updating to branch default
184 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
184 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
185 checking changesets
185 checking changesets
186 checking manifests
186 checking manifests
187 crosschecking files in changesets and manifests
187 crosschecking files in changesets and manifests
188 checking files
188 checking files
189 3 files, 5 changesets, 6 total revisions
189 3 files, 5 changesets, 6 total revisions
190
190
191 ---- hg clone -r 8 test test-8
191 ---- hg clone -r 8 test test-8
192 adding changesets
192 adding changesets
193 adding manifests
193 adding manifests
194 adding file changes
194 adding file changes
195 added 5 changesets with 5 changes to 2 files
195 added 5 changesets with 5 changes to 2 files
196 updating to branch default
196 updating to branch default
197 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
197 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
198 checking changesets
198 checking changesets
199 checking manifests
199 checking manifests
200 crosschecking files in changesets and manifests
200 crosschecking files in changesets and manifests
201 checking files
201 checking files
202 2 files, 5 changesets, 5 total revisions
202 2 files, 5 changesets, 5 total revisions
203
203
204 $ cd test-8
204 $ cd test-8
205 $ hg pull ../test-7
205 $ hg pull ../test-7
206 pulling from ../test-7
206 pulling from ../test-7
207 searching for changes
207 searching for changes
208 adding changesets
208 adding changesets
209 adding manifests
209 adding manifests
210 adding file changes
210 adding file changes
211 added 4 changesets with 2 changes to 3 files (+1 heads)
211 added 4 changesets with 2 changes to 3 files (+1 heads)
212 (run 'hg heads' to see heads, 'hg merge' to merge)
212 (run 'hg heads' to see heads, 'hg merge' to merge)
213 $ hg verify
213 $ hg verify
214 checking changesets
214 checking changesets
215 checking manifests
215 checking manifests
216 crosschecking files in changesets and manifests
216 crosschecking files in changesets and manifests
217 checking files
217 checking files
218 4 files, 9 changesets, 7 total revisions
218 4 files, 9 changesets, 7 total revisions
219 $ cd ..
219 $ cd ..
220
220
@@ -1,16 +1,16 b''
1 $ hg init dir
1 $ hg init dir
2 $ cd dir
2 $ cd dir
3 $ echo bleh > bar
3 $ echo bleh > bar
4 $ hg add bar
4 $ hg add bar
5 $ hg ci -m 'add bar'
5 $ hg ci -m 'add bar'
6
6
7 $ hg cp bar foo
7 $ hg cp bar foo
8 $ echo >> bar
8 $ echo >> bar
9 $ hg ci -m 'cp bar foo; change bar'
9 $ hg ci -m 'cp bar foo; change bar'
10
10
11 $ hg debugrename foo
11 $ hg debugrename foo
12 foo renamed from bar:26d3ca0dfd18e44d796b564e38dd173c9668d3a9
12 foo renamed from bar:26d3ca0dfd18e44d796b564e38dd173c9668d3a9
13 $ hg debugindex .hg/store/data/bar.i
13 $ hg debugindex bar
14 rev offset length base linkrev nodeid p1 p2
14 rev offset length base linkrev nodeid p1 p2
15 0 0 6 0 0 26d3ca0dfd18 000000000000 000000000000
15 0 0 6 0 0 26d3ca0dfd18 000000000000 000000000000
16 1 6 7 1 1 d267bddd54f7 26d3ca0dfd18 000000000000
16 1 6 7 1 1 d267bddd54f7 26d3ca0dfd18 000000000000
@@ -1,94 +1,94 b''
1 $ hg init
1 $ hg init
2 $ echo a > a
2 $ echo a > a
3 $ hg add a
3 $ hg add a
4 $ hg commit -m "1"
4 $ hg commit -m "1"
5 $ hg status
5 $ hg status
6 $ hg copy a b
6 $ hg copy a b
7 $ hg --config ui.portablefilenames=abort copy a con.xml
7 $ hg --config ui.portablefilenames=abort copy a con.xml
8 abort: filename contains 'con', which is reserved on Windows: 'con.xml'
8 abort: filename contains 'con', which is reserved on Windows: 'con.xml'
9 [255]
9 [255]
10 $ hg status
10 $ hg status
11 A b
11 A b
12 $ hg sum
12 $ hg sum
13 parent: 0:c19d34741b0a tip
13 parent: 0:c19d34741b0a tip
14 1
14 1
15 branch: default
15 branch: default
16 commit: 1 copied
16 commit: 1 copied
17 update: (current)
17 update: (current)
18 $ hg --debug commit -m "2"
18 $ hg --debug commit -m "2"
19 b
19 b
20 b: copy a:b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
20 b: copy a:b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
21 committed changeset 1:93580a2c28a50a56f63526fb305067e6fbf739c4
21 committed changeset 1:93580a2c28a50a56f63526fb305067e6fbf739c4
22
22
23 we should see two history entries
23 we should see two history entries
24
24
25 $ hg history -v
25 $ hg history -v
26 changeset: 1:93580a2c28a5
26 changeset: 1:93580a2c28a5
27 tag: tip
27 tag: tip
28 user: test
28 user: test
29 date: Thu Jan 01 00:00:00 1970 +0000
29 date: Thu Jan 01 00:00:00 1970 +0000
30 files: b
30 files: b
31 description:
31 description:
32 2
32 2
33
33
34
34
35 changeset: 0:c19d34741b0a
35 changeset: 0:c19d34741b0a
36 user: test
36 user: test
37 date: Thu Jan 01 00:00:00 1970 +0000
37 date: Thu Jan 01 00:00:00 1970 +0000
38 files: a
38 files: a
39 description:
39 description:
40 1
40 1
41
41
42
42
43
43
44 we should see one log entry for a
44 we should see one log entry for a
45
45
46 $ hg log a
46 $ hg log a
47 changeset: 0:c19d34741b0a
47 changeset: 0:c19d34741b0a
48 user: test
48 user: test
49 date: Thu Jan 01 00:00:00 1970 +0000
49 date: Thu Jan 01 00:00:00 1970 +0000
50 summary: 1
50 summary: 1
51
51
52
52
53 this should show a revision linked to changeset 0
53 this should show a revision linked to changeset 0
54
54
55 $ hg debugindex .hg/store/data/a.i
55 $ hg debugindex a
56 rev offset length base linkrev nodeid p1 p2
56 rev offset length base linkrev nodeid p1 p2
57 0 0 3 0 0 b789fdd96dc2 000000000000 000000000000
57 0 0 3 0 0 b789fdd96dc2 000000000000 000000000000
58
58
59 we should see one log entry for b
59 we should see one log entry for b
60
60
61 $ hg log b
61 $ hg log b
62 changeset: 1:93580a2c28a5
62 changeset: 1:93580a2c28a5
63 tag: tip
63 tag: tip
64 user: test
64 user: test
65 date: Thu Jan 01 00:00:00 1970 +0000
65 date: Thu Jan 01 00:00:00 1970 +0000
66 summary: 2
66 summary: 2
67
67
68
68
69 this should show a revision linked to changeset 1
69 this should show a revision linked to changeset 1
70
70
71 $ hg debugindex .hg/store/data/b.i
71 $ hg debugindex b
72 rev offset length base linkrev nodeid p1 p2
72 rev offset length base linkrev nodeid p1 p2
73 0 0 65 0 1 37d9b5d994ea 000000000000 000000000000
73 0 0 65 0 1 37d9b5d994ea 000000000000 000000000000
74
74
75 this should show the rename information in the metadata
75 this should show the rename information in the metadata
76
76
77 $ hg debugdata .hg/store/data/b.d 0 | head -3 | tail -2
77 $ hg debugdata b 0 | head -3 | tail -2
78 copy: a
78 copy: a
79 copyrev: b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
79 copyrev: b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
80
80
81 $ $TESTDIR/md5sum.py .hg/store/data/b.i
81 $ $TESTDIR/md5sum.py .hg/store/data/b.i
82 4999f120a3b88713bbefddd195cf5133 .hg/store/data/b.i
82 4999f120a3b88713bbefddd195cf5133 .hg/store/data/b.i
83 $ hg cat b > bsum
83 $ hg cat b > bsum
84 $ $TESTDIR/md5sum.py bsum
84 $ $TESTDIR/md5sum.py bsum
85 60b725f10c9c85c70d97880dfe8191b3 bsum
85 60b725f10c9c85c70d97880dfe8191b3 bsum
86 $ hg cat a > asum
86 $ hg cat a > asum
87 $ $TESTDIR/md5sum.py asum
87 $ $TESTDIR/md5sum.py asum
88 60b725f10c9c85c70d97880dfe8191b3 asum
88 60b725f10c9c85c70d97880dfe8191b3 asum
89 $ hg verify
89 $ hg verify
90 checking changesets
90 checking changesets
91 checking manifests
91 checking manifests
92 crosschecking files in changesets and manifests
92 crosschecking files in changesets and manifests
93 checking files
93 checking files
94 2 files, 2 changesets, 2 total revisions
94 2 files, 2 changesets, 2 total revisions
@@ -1,102 +1,102 b''
1 $ hg init
1 $ hg init
2 $ echo foo > foo
2 $ echo foo > foo
3 should fail - foo is not managed
3 should fail - foo is not managed
4 $ hg mv foo bar
4 $ hg mv foo bar
5 foo: not copying - file is not managed
5 foo: not copying - file is not managed
6 abort: no files to copy
6 abort: no files to copy
7 [255]
7 [255]
8 $ hg st -A
8 $ hg st -A
9 ? foo
9 ? foo
10 $ hg add foo
10 $ hg add foo
11 dry-run; print a warning that this is not a real copy; foo is added
11 dry-run; print a warning that this is not a real copy; foo is added
12 $ hg mv --dry-run foo bar
12 $ hg mv --dry-run foo bar
13 foo has not been committed yet, so no copy data will be stored for bar.
13 foo has not been committed yet, so no copy data will be stored for bar.
14 $ hg st -A
14 $ hg st -A
15 A foo
15 A foo
16 should print a warning that this is not a real copy; bar is added
16 should print a warning that this is not a real copy; bar is added
17 $ hg mv foo bar
17 $ hg mv foo bar
18 foo has not been committed yet, so no copy data will be stored for bar.
18 foo has not been committed yet, so no copy data will be stored for bar.
19 $ hg st -A
19 $ hg st -A
20 A bar
20 A bar
21 should print a warning that this is not a real copy; foo is added
21 should print a warning that this is not a real copy; foo is added
22 $ hg cp bar foo
22 $ hg cp bar foo
23 bar has not been committed yet, so no copy data will be stored for foo.
23 bar has not been committed yet, so no copy data will be stored for foo.
24 $ hg rm -f bar
24 $ hg rm -f bar
25 $ rm bar
25 $ rm bar
26 $ hg st -A
26 $ hg st -A
27 A foo
27 A foo
28 $ hg commit -m1
28 $ hg commit -m1
29
29
30 copy --after to a nonexistant target filename
30 copy --after to a nonexistant target filename
31 $ hg cp -A foo dummy
31 $ hg cp -A foo dummy
32 foo: not recording copy - dummy does not exist
32 foo: not recording copy - dummy does not exist
33
33
34 dry-run; should show that foo is clean
34 dry-run; should show that foo is clean
35 $ hg copy --dry-run foo bar
35 $ hg copy --dry-run foo bar
36 $ hg st -A
36 $ hg st -A
37 C foo
37 C foo
38 should show copy
38 should show copy
39 $ hg copy foo bar
39 $ hg copy foo bar
40 $ hg st -C
40 $ hg st -C
41 A bar
41 A bar
42 foo
42 foo
43
43
44 shouldn't show copy
44 shouldn't show copy
45 $ hg commit -m2
45 $ hg commit -m2
46 $ hg st -C
46 $ hg st -C
47
47
48 should match
48 should match
49 $ hg debugindex .hg/store/data/foo.i
49 $ hg debugindex foo
50 rev offset length base linkrev nodeid p1 p2
50 rev offset length base linkrev nodeid p1 p2
51 0 0 5 0 0 2ed2a3912a0b 000000000000 000000000000
51 0 0 5 0 0 2ed2a3912a0b 000000000000 000000000000
52 $ hg debugrename bar
52 $ hg debugrename bar
53 bar renamed from foo:2ed2a3912a0b24502043eae84ee4b279c18b90dd
53 bar renamed from foo:2ed2a3912a0b24502043eae84ee4b279c18b90dd
54
54
55 $ echo bleah > foo
55 $ echo bleah > foo
56 $ echo quux > bar
56 $ echo quux > bar
57 $ hg commit -m3
57 $ hg commit -m3
58
58
59 should not be renamed
59 should not be renamed
60 $ hg debugrename bar
60 $ hg debugrename bar
61 bar not renamed
61 bar not renamed
62
62
63 $ hg copy -f foo bar
63 $ hg copy -f foo bar
64 should show copy
64 should show copy
65 $ hg st -C
65 $ hg st -C
66 M bar
66 M bar
67 foo
67 foo
68 $ hg commit -m3
68 $ hg commit -m3
69
69
70 should show no parents for tip
70 should show no parents for tip
71 $ hg debugindex .hg/store/data/bar.i
71 $ hg debugindex bar
72 rev offset length base linkrev nodeid p1 p2
72 rev offset length base linkrev nodeid p1 p2
73 0 0 69 0 1 7711d36246cc 000000000000 000000000000
73 0 0 69 0 1 7711d36246cc 000000000000 000000000000
74 1 69 6 1 2 bdf70a2b8d03 7711d36246cc 000000000000
74 1 69 6 1 2 bdf70a2b8d03 7711d36246cc 000000000000
75 2 75 81 1 3 b2558327ea8d 000000000000 000000000000
75 2 75 81 1 3 b2558327ea8d 000000000000 000000000000
76 should match
76 should match
77 $ hg debugindex .hg/store/data/foo.i
77 $ hg debugindex foo
78 rev offset length base linkrev nodeid p1 p2
78 rev offset length base linkrev nodeid p1 p2
79 0 0 5 0 0 2ed2a3912a0b 000000000000 000000000000
79 0 0 5 0 0 2ed2a3912a0b 000000000000 000000000000
80 1 5 7 1 2 dd12c926cf16 2ed2a3912a0b 000000000000
80 1 5 7 1 2 dd12c926cf16 2ed2a3912a0b 000000000000
81 $ hg debugrename bar
81 $ hg debugrename bar
82 bar renamed from foo:dd12c926cf165e3eb4cf87b084955cb617221c17
82 bar renamed from foo:dd12c926cf165e3eb4cf87b084955cb617221c17
83
83
84 should show no copies
84 should show no copies
85 $ hg st -C
85 $ hg st -C
86
86
87 copy --after on an added file
87 copy --after on an added file
88 $ cp bar baz
88 $ cp bar baz
89 $ hg add baz
89 $ hg add baz
90 $ hg cp -A bar baz
90 $ hg cp -A bar baz
91 $ hg st -C
91 $ hg st -C
92 A baz
92 A baz
93 bar
93 bar
94
94
95 foo was clean:
95 foo was clean:
96 $ hg st -AC foo
96 $ hg st -AC foo
97 C foo
97 C foo
98 but it's considered modified after a copy --after --force
98 but it's considered modified after a copy --after --force
99 $ hg copy -Af bar foo
99 $ hg copy -Af bar foo
100 $ hg st -AC foo
100 $ hg st -AC foo
101 M foo
101 M foo
102 bar
102 bar
@@ -1,61 +1,61 b''
1 Test encode/decode filters
1 Test encode/decode filters
2
2
3 $ hg init
3 $ hg init
4 $ cat > .hg/hgrc <<EOF
4 $ cat > .hg/hgrc <<EOF
5 > [encode]
5 > [encode]
6 > not.gz = tr [:lower:] [:upper:]
6 > not.gz = tr [:lower:] [:upper:]
7 > *.gz = gzip -d
7 > *.gz = gzip -d
8 > [decode]
8 > [decode]
9 > not.gz = tr [:upper:] [:lower:]
9 > not.gz = tr [:upper:] [:lower:]
10 > *.gz = gzip
10 > *.gz = gzip
11 > EOF
11 > EOF
12 $ echo "this is a test" | gzip > a.gz
12 $ echo "this is a test" | gzip > a.gz
13 $ echo "this is a test" > not.gz
13 $ echo "this is a test" > not.gz
14 $ hg add *
14 $ hg add *
15 $ hg ci -m "test"
15 $ hg ci -m "test"
16
16
17 no changes
17 no changes
18
18
19 $ hg status
19 $ hg status
20 $ touch *
20 $ touch *
21
21
22 no changes
22 no changes
23
23
24 $ hg status
24 $ hg status
25
25
26 check contents in repo are encoded
26 check contents in repo are encoded
27
27
28 $ hg debugdata .hg/store/data/a.gz.d 0
28 $ hg debugdata a.gz 0
29 this is a test
29 this is a test
30 $ hg debugdata .hg/store/data/not.gz.d 0
30 $ hg debugdata not.gz 0
31 THIS IS A TEST
31 THIS IS A TEST
32
32
33 check committed content was decoded
33 check committed content was decoded
34
34
35 $ gunzip < a.gz
35 $ gunzip < a.gz
36 this is a test
36 this is a test
37 $ cat not.gz
37 $ cat not.gz
38 this is a test
38 this is a test
39 $ rm *
39 $ rm *
40 $ hg co -C
40 $ hg co -C
41 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
41 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
42
42
43 check decoding of our new working dir copy
43 check decoding of our new working dir copy
44
44
45 $ gunzip < a.gz
45 $ gunzip < a.gz
46 this is a test
46 this is a test
47 $ cat not.gz
47 $ cat not.gz
48 this is a test
48 this is a test
49
49
50 check hg cat operation
50 check hg cat operation
51
51
52 $ hg cat a.gz
52 $ hg cat a.gz
53 this is a test
53 this is a test
54 $ hg cat --decode a.gz | gunzip
54 $ hg cat --decode a.gz | gunzip
55 this is a test
55 this is a test
56 $ mkdir subdir
56 $ mkdir subdir
57 $ cd subdir
57 $ cd subdir
58 $ hg -R .. cat ../a.gz
58 $ hg -R .. cat ../a.gz
59 this is a test
59 this is a test
60 $ hg -R .. cat --decode ../a.gz | gunzip
60 $ hg -R .. cat --decode ../a.gz | gunzip
61 this is a test
61 this is a test
@@ -1,101 +1,101 b''
1 $ hg init
1 $ hg init
2
2
3 $ echo foo > a
3 $ echo foo > a
4 $ echo foo > b
4 $ echo foo > b
5 $ hg add a b
5 $ hg add a b
6
6
7 $ hg ci -m "test"
7 $ hg ci -m "test"
8
8
9 $ echo blah > a
9 $ echo blah > a
10
10
11 $ hg ci -m "branch a"
11 $ hg ci -m "branch a"
12
12
13 $ hg co 0
13 $ hg co 0
14 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
14 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
15
15
16 $ echo blah > b
16 $ echo blah > b
17
17
18 $ hg ci -m "branch b"
18 $ hg ci -m "branch b"
19 created new head
19 created new head
20 $ HGMERGE=true hg merge 1
20 $ HGMERGE=true hg merge 1
21 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
21 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
22 (branch merge, don't forget to commit)
22 (branch merge, don't forget to commit)
23
23
24 $ hg ci -m "merge b/a -> blah"
24 $ hg ci -m "merge b/a -> blah"
25
25
26 $ hg co 1
26 $ hg co 1
27 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
27 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
28 $ HGMERGE=true hg merge 2
28 $ HGMERGE=true hg merge 2
29 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
29 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
30 (branch merge, don't forget to commit)
30 (branch merge, don't forget to commit)
31 $ hg ci -m "merge a/b -> blah"
31 $ hg ci -m "merge a/b -> blah"
32 created new head
32 created new head
33
33
34 $ hg log
34 $ hg log
35 changeset: 4:2ee31f665a86
35 changeset: 4:2ee31f665a86
36 tag: tip
36 tag: tip
37 parent: 1:96155394af80
37 parent: 1:96155394af80
38 parent: 2:92cc4c306b19
38 parent: 2:92cc4c306b19
39 user: test
39 user: test
40 date: Thu Jan 01 00:00:00 1970 +0000
40 date: Thu Jan 01 00:00:00 1970 +0000
41 summary: merge a/b -> blah
41 summary: merge a/b -> blah
42
42
43 changeset: 3:e16a66a37edd
43 changeset: 3:e16a66a37edd
44 parent: 2:92cc4c306b19
44 parent: 2:92cc4c306b19
45 parent: 1:96155394af80
45 parent: 1:96155394af80
46 user: test
46 user: test
47 date: Thu Jan 01 00:00:00 1970 +0000
47 date: Thu Jan 01 00:00:00 1970 +0000
48 summary: merge b/a -> blah
48 summary: merge b/a -> blah
49
49
50 changeset: 2:92cc4c306b19
50 changeset: 2:92cc4c306b19
51 parent: 0:5e0375449e74
51 parent: 0:5e0375449e74
52 user: test
52 user: test
53 date: Thu Jan 01 00:00:00 1970 +0000
53 date: Thu Jan 01 00:00:00 1970 +0000
54 summary: branch b
54 summary: branch b
55
55
56 changeset: 1:96155394af80
56 changeset: 1:96155394af80
57 user: test
57 user: test
58 date: Thu Jan 01 00:00:00 1970 +0000
58 date: Thu Jan 01 00:00:00 1970 +0000
59 summary: branch a
59 summary: branch a
60
60
61 changeset: 0:5e0375449e74
61 changeset: 0:5e0375449e74
62 user: test
62 user: test
63 date: Thu Jan 01 00:00:00 1970 +0000
63 date: Thu Jan 01 00:00:00 1970 +0000
64 summary: test
64 summary: test
65
65
66 $ hg debugindex .hg/store/00changelog.i
66 $ hg debugindex .hg/store/00changelog.i
67 rev offset length base linkrev nodeid p1 p2
67 rev offset length base linkrev nodeid p1 p2
68 0 0 60 0 0 5e0375449e74 000000000000 000000000000
68 0 0 60 0 0 5e0375449e74 000000000000 000000000000
69 1 60 62 1 1 96155394af80 5e0375449e74 000000000000
69 1 60 62 1 1 96155394af80 5e0375449e74 000000000000
70 2 122 62 2 2 92cc4c306b19 5e0375449e74 000000000000
70 2 122 62 2 2 92cc4c306b19 5e0375449e74 000000000000
71 3 184 69 3 3 e16a66a37edd 92cc4c306b19 96155394af80
71 3 184 69 3 3 e16a66a37edd 92cc4c306b19 96155394af80
72 4 253 29 3 4 2ee31f665a86 96155394af80 92cc4c306b19
72 4 253 29 3 4 2ee31f665a86 96155394af80 92cc4c306b19
73
73
74 revision 1
74 revision 1
75 $ hg manifest --debug 1
75 $ hg manifest --debug 1
76 79d7492df40aa0fa093ec4209be78043c181f094 644 a
76 79d7492df40aa0fa093ec4209be78043c181f094 644 a
77 2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 b
77 2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 b
78 revision 2
78 revision 2
79 $ hg manifest --debug 2
79 $ hg manifest --debug 2
80 2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 a
80 2ed2a3912a0b24502043eae84ee4b279c18b90dd 644 a
81 79d7492df40aa0fa093ec4209be78043c181f094 644 b
81 79d7492df40aa0fa093ec4209be78043c181f094 644 b
82 revision 3
82 revision 3
83 $ hg manifest --debug 3
83 $ hg manifest --debug 3
84 79d7492df40aa0fa093ec4209be78043c181f094 644 a
84 79d7492df40aa0fa093ec4209be78043c181f094 644 a
85 79d7492df40aa0fa093ec4209be78043c181f094 644 b
85 79d7492df40aa0fa093ec4209be78043c181f094 644 b
86 revision 4
86 revision 4
87 $ hg manifest --debug 4
87 $ hg manifest --debug 4
88 79d7492df40aa0fa093ec4209be78043c181f094 644 a
88 79d7492df40aa0fa093ec4209be78043c181f094 644 a
89 79d7492df40aa0fa093ec4209be78043c181f094 644 b
89 79d7492df40aa0fa093ec4209be78043c181f094 644 b
90
90
91 $ hg debugindex .hg/store/data/a.i
91 $ hg debugindex a
92 rev offset length base linkrev nodeid p1 p2
92 rev offset length base linkrev nodeid p1 p2
93 0 0 5 0 0 2ed2a3912a0b 000000000000 000000000000
93 0 0 5 0 0 2ed2a3912a0b 000000000000 000000000000
94 1 5 6 1 1 79d7492df40a 2ed2a3912a0b 000000000000
94 1 5 6 1 1 79d7492df40a 2ed2a3912a0b 000000000000
95
95
96 $ hg verify
96 $ hg verify
97 checking changesets
97 checking changesets
98 checking manifests
98 checking manifests
99 crosschecking files in changesets and manifests
99 crosschecking files in changesets and manifests
100 checking files
100 checking files
101 2 files, 5 changesets, 4 total revisions
101 2 files, 5 changesets, 4 total revisions
@@ -1,21 +1,21 b''
1 Issue351: mq: qrefresh can create extra revlog entry
1 Issue351: mq: qrefresh can create extra revlog entry
2
2
3 $ echo "[extensions]" >> $HGRCPATH
3 $ echo "[extensions]" >> $HGRCPATH
4 $ echo "mq=" >> $HGRCPATH
4 $ echo "mq=" >> $HGRCPATH
5
5
6 $ hg init
6 $ hg init
7 $ hg qinit
7 $ hg qinit
8
8
9 $ echo b > b
9 $ echo b > b
10 $ hg ci -A -m foo
10 $ hg ci -A -m foo
11 adding b
11 adding b
12
12
13 $ echo cc > b
13 $ echo cc > b
14 $ hg qnew -f foo.diff
14 $ hg qnew -f foo.diff
15 $ echo b > b
15 $ echo b > b
16 $ hg qrefresh
16 $ hg qrefresh
17
17
18 $ hg debugindex .hg/store/data/b.i
18 $ hg debugindex b
19 rev offset length base linkrev nodeid p1 p2
19 rev offset length base linkrev nodeid p1 p2
20 0 0 3 0 0 1e88685f5dde 000000000000 000000000000
20 0 0 3 0 0 1e88685f5dde 000000000000 000000000000
21
21
@@ -1,148 +1,148 b''
1 This test makes sure that we don't mark a file as merged with its ancestor
1 This test makes sure that we don't mark a file as merged with its ancestor
2 when we do a merge.
2 when we do a merge.
3
3
4 $ cat <<EOF > merge
4 $ cat <<EOF > merge
5 > import sys, os
5 > import sys, os
6 > print "merging for", os.path.basename(sys.argv[1])
6 > print "merging for", os.path.basename(sys.argv[1])
7 > EOF
7 > EOF
8 $ HGMERGE="python ../merge"; export HGMERGE
8 $ HGMERGE="python ../merge"; export HGMERGE
9
9
10 Creating base:
10 Creating base:
11
11
12 $ hg init a
12 $ hg init a
13 $ cd a
13 $ cd a
14 $ echo 1 > foo
14 $ echo 1 > foo
15 $ echo 1 > bar
15 $ echo 1 > bar
16 $ echo 1 > baz
16 $ echo 1 > baz
17 $ echo 1 > quux
17 $ echo 1 > quux
18 $ hg add foo bar baz quux
18 $ hg add foo bar baz quux
19 $ hg commit -m "base"
19 $ hg commit -m "base"
20
20
21 $ cd ..
21 $ cd ..
22 $ hg clone a b
22 $ hg clone a b
23 updating to branch default
23 updating to branch default
24 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
24 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
25
25
26 Creating branch a:
26 Creating branch a:
27
27
28 $ cd a
28 $ cd a
29 $ echo 2a > foo
29 $ echo 2a > foo
30 $ echo 2a > bar
30 $ echo 2a > bar
31 $ hg commit -m "branch a"
31 $ hg commit -m "branch a"
32
32
33 Creating branch b:
33 Creating branch b:
34
34
35 $ cd ..
35 $ cd ..
36 $ cd b
36 $ cd b
37 $ echo 2b > foo
37 $ echo 2b > foo
38 $ echo 2b > baz
38 $ echo 2b > baz
39 $ hg commit -m "branch b"
39 $ hg commit -m "branch b"
40
40
41 We shouldn't have anything but n state here:
41 We shouldn't have anything but n state here:
42
42
43 $ hg debugstate --nodates | grep -v "^n"
43 $ hg debugstate --nodates | grep -v "^n"
44 [1]
44 [1]
45
45
46 Merging:
46 Merging:
47
47
48 $ hg pull ../a
48 $ hg pull ../a
49 pulling from ../a
49 pulling from ../a
50 searching for changes
50 searching for changes
51 adding changesets
51 adding changesets
52 adding manifests
52 adding manifests
53 adding file changes
53 adding file changes
54 added 1 changesets with 2 changes to 2 files (+1 heads)
54 added 1 changesets with 2 changes to 2 files (+1 heads)
55 (run 'hg heads' to see heads, 'hg merge' to merge)
55 (run 'hg heads' to see heads, 'hg merge' to merge)
56
56
57 $ hg merge -v
57 $ hg merge -v
58 resolving manifests
58 resolving manifests
59 getting bar
59 getting bar
60 merging foo
60 merging foo
61 merging for foo
61 merging for foo
62 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
62 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
63 (branch merge, don't forget to commit)
63 (branch merge, don't forget to commit)
64
64
65 $ echo 2m > foo
65 $ echo 2m > foo
66 $ echo 2b > baz
66 $ echo 2b > baz
67 $ echo new > quux
67 $ echo new > quux
68
68
69 We shouldn't have anything but foo in merge state here:
69 We shouldn't have anything but foo in merge state here:
70
70
71 $ hg debugstate --nodates | grep "^m"
71 $ hg debugstate --nodates | grep "^m"
72 m 644 3 foo
72 m 644 3 foo
73
73
74 $ hg ci -m "merge"
74 $ hg ci -m "merge"
75
75
76 main: we should have a merge here:
76 main: we should have a merge here:
77
77
78 $ hg debugindex .hg/store/00changelog.i
78 $ hg debugindex .hg/store/00changelog.i
79 rev offset length base linkrev nodeid p1 p2
79 rev offset length base linkrev nodeid p1 p2
80 0 0 73 0 0 cdca01651b96 000000000000 000000000000
80 0 0 73 0 0 cdca01651b96 000000000000 000000000000
81 1 73 68 1 1 f6718a9cb7f3 cdca01651b96 000000000000
81 1 73 68 1 1 f6718a9cb7f3 cdca01651b96 000000000000
82 2 141 68 2 2 bdd988058d16 cdca01651b96 000000000000
82 2 141 68 2 2 bdd988058d16 cdca01651b96 000000000000
83 3 209 66 3 3 d8a521142a3c f6718a9cb7f3 bdd988058d16
83 3 209 66 3 3 d8a521142a3c f6718a9cb7f3 bdd988058d16
84
84
85 log should show foo and quux changed:
85 log should show foo and quux changed:
86
86
87 $ hg log -v -r tip
87 $ hg log -v -r tip
88 changeset: 3:d8a521142a3c
88 changeset: 3:d8a521142a3c
89 tag: tip
89 tag: tip
90 parent: 1:f6718a9cb7f3
90 parent: 1:f6718a9cb7f3
91 parent: 2:bdd988058d16
91 parent: 2:bdd988058d16
92 user: test
92 user: test
93 date: Thu Jan 01 00:00:00 1970 +0000
93 date: Thu Jan 01 00:00:00 1970 +0000
94 files: foo quux
94 files: foo quux
95 description:
95 description:
96 merge
96 merge
97
97
98
98
99
99
100 foo: we should have a merge here:
100 foo: we should have a merge here:
101
101
102 $ hg debugindex .hg/store/data/foo.i
102 $ hg debugindex foo
103 rev offset length base linkrev nodeid p1 p2
103 rev offset length base linkrev nodeid p1 p2
104 0 0 3 0 0 b8e02f643373 000000000000 000000000000
104 0 0 3 0 0 b8e02f643373 000000000000 000000000000
105 1 3 4 1 1 2ffeddde1b65 b8e02f643373 000000000000
105 1 3 4 1 1 2ffeddde1b65 b8e02f643373 000000000000
106 2 7 4 2 2 33d1fb69067a b8e02f643373 000000000000
106 2 7 4 2 2 33d1fb69067a b8e02f643373 000000000000
107 3 11 4 3 3 aa27919ee430 2ffeddde1b65 33d1fb69067a
107 3 11 4 3 3 aa27919ee430 2ffeddde1b65 33d1fb69067a
108
108
109 bar: we should not have a merge here:
109 bar: we should not have a merge here:
110
110
111 $ hg debugindex .hg/store/data/bar.i
111 $ hg debugindex bar
112 rev offset length base linkrev nodeid p1 p2
112 rev offset length base linkrev nodeid p1 p2
113 0 0 3 0 0 b8e02f643373 000000000000 000000000000
113 0 0 3 0 0 b8e02f643373 000000000000 000000000000
114 1 3 4 1 2 33d1fb69067a b8e02f643373 000000000000
114 1 3 4 1 2 33d1fb69067a b8e02f643373 000000000000
115
115
116 baz: we should not have a merge here:
116 baz: we should not have a merge here:
117
117
118 $ hg debugindex .hg/store/data/baz.i
118 $ hg debugindex baz
119 rev offset length base linkrev nodeid p1 p2
119 rev offset length base linkrev nodeid p1 p2
120 0 0 3 0 0 b8e02f643373 000000000000 000000000000
120 0 0 3 0 0 b8e02f643373 000000000000 000000000000
121 1 3 4 1 1 2ffeddde1b65 b8e02f643373 000000000000
121 1 3 4 1 1 2ffeddde1b65 b8e02f643373 000000000000
122
122
123 quux: we should not have a merge here:
123 quux: we should not have a merge here:
124
124
125 $ hg debugindex .hg/store/data/quux.i
125 $ hg debugindex quux
126 rev offset length base linkrev nodeid p1 p2
126 rev offset length base linkrev nodeid p1 p2
127 0 0 3 0 0 b8e02f643373 000000000000 000000000000
127 0 0 3 0 0 b8e02f643373 000000000000 000000000000
128 1 3 5 1 3 6128c0f33108 b8e02f643373 000000000000
128 1 3 5 1 3 6128c0f33108 b8e02f643373 000000000000
129
129
130 Manifest entries should match tips of all files:
130 Manifest entries should match tips of all files:
131
131
132 $ hg manifest --debug
132 $ hg manifest --debug
133 33d1fb69067a0139622a3fa3b7ba1cdb1367972e 644 bar
133 33d1fb69067a0139622a3fa3b7ba1cdb1367972e 644 bar
134 2ffeddde1b65b4827f6746174a145474129fa2ce 644 baz
134 2ffeddde1b65b4827f6746174a145474129fa2ce 644 baz
135 aa27919ee4303cfd575e1fb932dd64d75aa08be4 644 foo
135 aa27919ee4303cfd575e1fb932dd64d75aa08be4 644 foo
136 6128c0f33108e8cfbb4e0824d13ae48b466d7280 644 quux
136 6128c0f33108e8cfbb4e0824d13ae48b466d7280 644 quux
137
137
138 Everything should be clean now:
138 Everything should be clean now:
139
139
140 $ hg status
140 $ hg status
141
141
142 $ hg verify
142 $ hg verify
143 checking changesets
143 checking changesets
144 checking manifests
144 checking manifests
145 crosschecking files in changesets and manifests
145 crosschecking files in changesets and manifests
146 checking files
146 checking files
147 4 files, 4 changesets, 10 total revisions
147 4 files, 4 changesets, 10 total revisions
148
148
@@ -1,147 +1,147 b''
1 $ umask 027
1 $ umask 027
2
2
3 $ hg init test1
3 $ hg init test1
4 $ cd test1
4 $ cd test1
5 $ touch a b
5 $ touch a b
6 $ hg add a b
6 $ hg add a b
7 $ hg ci -m "added a b"
7 $ hg ci -m "added a b"
8
8
9 $ cd ..
9 $ cd ..
10 $ hg clone test1 test3
10 $ hg clone test1 test3
11 updating to branch default
11 updating to branch default
12 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
12 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
13
13
14 $ hg init test2
14 $ hg init test2
15 $ cd test2
15 $ cd test2
16 $ hg pull ../test1
16 $ hg pull ../test1
17 pulling from ../test1
17 pulling from ../test1
18 requesting all changes
18 requesting all changes
19 adding changesets
19 adding changesets
20 adding manifests
20 adding manifests
21 adding file changes
21 adding file changes
22 added 1 changesets with 2 changes to 2 files
22 added 1 changesets with 2 changes to 2 files
23 (run 'hg update' to get a working copy)
23 (run 'hg update' to get a working copy)
24 $ hg co
24 $ hg co
25 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
25 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
26 $ chmod +x a
26 $ chmod +x a
27 $ hg ci -m "chmod +x a"
27 $ hg ci -m "chmod +x a"
28
28
29 the changelog should mention file a:
29 the changelog should mention file a:
30
30
31 $ hg tip --template '{files}\n'
31 $ hg tip --template '{files}\n'
32 a
32 a
33
33
34 $ cd ../test1
34 $ cd ../test1
35 $ echo 123 >>a
35 $ echo 123 >>a
36 $ hg ci -m "a updated"
36 $ hg ci -m "a updated"
37
37
38 $ hg pull ../test2
38 $ hg pull ../test2
39 pulling from ../test2
39 pulling from ../test2
40 searching for changes
40 searching for changes
41 adding changesets
41 adding changesets
42 adding manifests
42 adding manifests
43 adding file changes
43 adding file changes
44 added 1 changesets with 0 changes to 0 files (+1 heads)
44 added 1 changesets with 0 changes to 0 files (+1 heads)
45 (run 'hg heads' to see heads, 'hg merge' to merge)
45 (run 'hg heads' to see heads, 'hg merge' to merge)
46 $ hg heads
46 $ hg heads
47 changeset: 2:7f4313b42a34
47 changeset: 2:7f4313b42a34
48 tag: tip
48 tag: tip
49 parent: 0:22a449e20da5
49 parent: 0:22a449e20da5
50 user: test
50 user: test
51 date: Thu Jan 01 00:00:00 1970 +0000
51 date: Thu Jan 01 00:00:00 1970 +0000
52 summary: chmod +x a
52 summary: chmod +x a
53
53
54 changeset: 1:c6ecefc45368
54 changeset: 1:c6ecefc45368
55 user: test
55 user: test
56 date: Thu Jan 01 00:00:00 1970 +0000
56 date: Thu Jan 01 00:00:00 1970 +0000
57 summary: a updated
57 summary: a updated
58
58
59 $ hg history
59 $ hg history
60 changeset: 2:7f4313b42a34
60 changeset: 2:7f4313b42a34
61 tag: tip
61 tag: tip
62 parent: 0:22a449e20da5
62 parent: 0:22a449e20da5
63 user: test
63 user: test
64 date: Thu Jan 01 00:00:00 1970 +0000
64 date: Thu Jan 01 00:00:00 1970 +0000
65 summary: chmod +x a
65 summary: chmod +x a
66
66
67 changeset: 1:c6ecefc45368
67 changeset: 1:c6ecefc45368
68 user: test
68 user: test
69 date: Thu Jan 01 00:00:00 1970 +0000
69 date: Thu Jan 01 00:00:00 1970 +0000
70 summary: a updated
70 summary: a updated
71
71
72 changeset: 0:22a449e20da5
72 changeset: 0:22a449e20da5
73 user: test
73 user: test
74 date: Thu Jan 01 00:00:00 1970 +0000
74 date: Thu Jan 01 00:00:00 1970 +0000
75 summary: added a b
75 summary: added a b
76
76
77
77
78 $ hg -v merge
78 $ hg -v merge
79 resolving manifests
79 resolving manifests
80 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
80 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
81 (branch merge, don't forget to commit)
81 (branch merge, don't forget to commit)
82
82
83 $ cd ../test3
83 $ cd ../test3
84 $ echo 123 >>b
84 $ echo 123 >>b
85 $ hg ci -m "b updated"
85 $ hg ci -m "b updated"
86
86
87 $ hg pull ../test2
87 $ hg pull ../test2
88 pulling from ../test2
88 pulling from ../test2
89 searching for changes
89 searching for changes
90 adding changesets
90 adding changesets
91 adding manifests
91 adding manifests
92 adding file changes
92 adding file changes
93 added 1 changesets with 0 changes to 0 files (+1 heads)
93 added 1 changesets with 0 changes to 0 files (+1 heads)
94 (run 'hg heads' to see heads, 'hg merge' to merge)
94 (run 'hg heads' to see heads, 'hg merge' to merge)
95 $ hg heads
95 $ hg heads
96 changeset: 2:7f4313b42a34
96 changeset: 2:7f4313b42a34
97 tag: tip
97 tag: tip
98 parent: 0:22a449e20da5
98 parent: 0:22a449e20da5
99 user: test
99 user: test
100 date: Thu Jan 01 00:00:00 1970 +0000
100 date: Thu Jan 01 00:00:00 1970 +0000
101 summary: chmod +x a
101 summary: chmod +x a
102
102
103 changeset: 1:dc57ead75f79
103 changeset: 1:dc57ead75f79
104 user: test
104 user: test
105 date: Thu Jan 01 00:00:00 1970 +0000
105 date: Thu Jan 01 00:00:00 1970 +0000
106 summary: b updated
106 summary: b updated
107
107
108 $ hg history
108 $ hg history
109 changeset: 2:7f4313b42a34
109 changeset: 2:7f4313b42a34
110 tag: tip
110 tag: tip
111 parent: 0:22a449e20da5
111 parent: 0:22a449e20da5
112 user: test
112 user: test
113 date: Thu Jan 01 00:00:00 1970 +0000
113 date: Thu Jan 01 00:00:00 1970 +0000
114 summary: chmod +x a
114 summary: chmod +x a
115
115
116 changeset: 1:dc57ead75f79
116 changeset: 1:dc57ead75f79
117 user: test
117 user: test
118 date: Thu Jan 01 00:00:00 1970 +0000
118 date: Thu Jan 01 00:00:00 1970 +0000
119 summary: b updated
119 summary: b updated
120
120
121 changeset: 0:22a449e20da5
121 changeset: 0:22a449e20da5
122 user: test
122 user: test
123 date: Thu Jan 01 00:00:00 1970 +0000
123 date: Thu Jan 01 00:00:00 1970 +0000
124 summary: added a b
124 summary: added a b
125
125
126
126
127 $ hg -v merge
127 $ hg -v merge
128 resolving manifests
128 resolving manifests
129 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
129 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
130 (branch merge, don't forget to commit)
130 (branch merge, don't forget to commit)
131
131
132 $ ls -l ../test[123]/a > foo
132 $ ls -l ../test[123]/a > foo
133 $ cut -b 1-10 < foo
133 $ cut -b 1-10 < foo
134 -rwxr-x---
134 -rwxr-x---
135 -rwxr-x---
135 -rwxr-x---
136 -rwxr-x---
136 -rwxr-x---
137
137
138 $ hg debugindex .hg/store/data/a.i
138 $ hg debugindex a
139 rev offset length base linkrev nodeid p1 p2
139 rev offset length base linkrev nodeid p1 p2
140 0 0 0 0 0 b80de5d13875 000000000000 000000000000
140 0 0 0 0 0 b80de5d13875 000000000000 000000000000
141 $ hg debugindex ../test2/.hg/store/data/a.i
141 $ hg debugindex -R ../test2 a
142 rev offset length base linkrev nodeid p1 p2
142 rev offset length base linkrev nodeid p1 p2
143 0 0 0 0 0 b80de5d13875 000000000000 000000000000
143 0 0 0 0 0 b80de5d13875 000000000000 000000000000
144 $ hg debugindex ../test1/.hg/store/data/a.i
144 $ hg debugindex -R ../test1 a
145 rev offset length base linkrev nodeid p1 p2
145 rev offset length base linkrev nodeid p1 p2
146 0 0 0 0 0 b80de5d13875 000000000000 000000000000
146 0 0 0 0 0 b80de5d13875 000000000000 000000000000
147 1 0 5 1 1 7fe919cc0336 b80de5d13875 000000000000
147 1 0 5 1 1 7fe919cc0336 b80de5d13875 000000000000
@@ -1,56 +1,56 b''
1 http://mercurial.selenic.com/bts/issue522
1 http://mercurial.selenic.com/bts/issue522
2
2
3 In the merge below, the file "foo" has the same contents in both
3 In the merge below, the file "foo" has the same contents in both
4 parents, but if we look at the file-level history, we'll notice that
4 parents, but if we look at the file-level history, we'll notice that
5 the version in p1 is an ancestor of the version in p2. This test makes
5 the version in p1 is an ancestor of the version in p2. This test makes
6 sure that we'll use the version from p2 in the manifest of the merge
6 sure that we'll use the version from p2 in the manifest of the merge
7 revision.
7 revision.
8
8
9 $ hg init
9 $ hg init
10
10
11 $ echo foo > foo
11 $ echo foo > foo
12 $ hg ci -qAm 'add foo'
12 $ hg ci -qAm 'add foo'
13
13
14 $ echo bar >> foo
14 $ echo bar >> foo
15 $ hg ci -m 'change foo'
15 $ hg ci -m 'change foo'
16
16
17 $ hg backout -r tip -m 'backout changed foo'
17 $ hg backout -r tip -m 'backout changed foo'
18 reverting foo
18 reverting foo
19 changeset 2:4d9e78aaceee backs out changeset 1:b515023e500e
19 changeset 2:4d9e78aaceee backs out changeset 1:b515023e500e
20
20
21 $ hg up -C 0
21 $ hg up -C 0
22 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
22 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
23
23
24 $ touch bar
24 $ touch bar
25 $ hg ci -qAm 'add bar'
25 $ hg ci -qAm 'add bar'
26
26
27 $ hg merge --debug
27 $ hg merge --debug
28 searching for copies back to rev 1
28 searching for copies back to rev 1
29 unmatched files in local:
29 unmatched files in local:
30 bar
30 bar
31 resolving manifests
31 resolving manifests
32 overwrite None partial False
32 overwrite None partial False
33 ancestor bbd179dfa0a7 local 71766447bdbb+ remote 4d9e78aaceee
33 ancestor bbd179dfa0a7 local 71766447bdbb+ remote 4d9e78aaceee
34 foo: remote is newer -> g
34 foo: remote is newer -> g
35 updating: foo 1/1 files (100.00%)
35 updating: foo 1/1 files (100.00%)
36 getting foo
36 getting foo
37 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
37 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
38 (branch merge, don't forget to commit)
38 (branch merge, don't forget to commit)
39
39
40 $ hg debugstate | grep foo
40 $ hg debugstate | grep foo
41 n 0 -2 unset foo
41 n 0 -2 unset foo
42
42
43 $ hg st -A foo
43 $ hg st -A foo
44 M foo
44 M foo
45
45
46 $ hg ci -m 'merge'
46 $ hg ci -m 'merge'
47
47
48 $ hg manifest --debug | grep foo
48 $ hg manifest --debug | grep foo
49 c6fc755d7e68f49f880599da29f15add41f42f5a 644 foo
49 c6fc755d7e68f49f880599da29f15add41f42f5a 644 foo
50
50
51 $ hg debugindex .hg/store/data/foo.i
51 $ hg debugindex foo
52 rev offset length base linkrev nodeid p1 p2
52 rev offset length base linkrev nodeid p1 p2
53 0 0 5 0 0 2ed2a3912a0b 000000000000 000000000000
53 0 0 5 0 0 2ed2a3912a0b 000000000000 000000000000
54 1 5 9 1 1 6f4310b00b9a 2ed2a3912a0b 000000000000
54 1 5 9 1 1 6f4310b00b9a 2ed2a3912a0b 000000000000
55 2 14 5 2 2 c6fc755d7e68 6f4310b00b9a 000000000000
55 2 14 5 2 2 c6fc755d7e68 6f4310b00b9a 000000000000
56
56
@@ -1,183 +1,183 b''
1 Check that renames are correctly saved by a commit after a merge
1 Check that renames are correctly saved by a commit after a merge
2
2
3 Test with the merge on 3 having the rename on the local parent
3 Test with the merge on 3 having the rename on the local parent
4
4
5 $ hg init a
5 $ hg init a
6 $ cd a
6 $ cd a
7
7
8 $ echo line1 > foo
8 $ echo line1 > foo
9 $ hg add foo
9 $ hg add foo
10 $ hg ci -m '0: add foo'
10 $ hg ci -m '0: add foo'
11
11
12 $ echo line2 >> foo
12 $ echo line2 >> foo
13 $ hg ci -m '1: change foo'
13 $ hg ci -m '1: change foo'
14
14
15 $ hg up -C 0
15 $ hg up -C 0
16 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
16 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
17
17
18 $ hg mv foo bar
18 $ hg mv foo bar
19 $ rm bar
19 $ rm bar
20 $ echo line0 > bar
20 $ echo line0 > bar
21 $ echo line1 >> bar
21 $ echo line1 >> bar
22 $ hg ci -m '2: mv foo bar; change bar'
22 $ hg ci -m '2: mv foo bar; change bar'
23 created new head
23 created new head
24
24
25 $ hg merge 1
25 $ hg merge 1
26 merging bar and foo to bar
26 merging bar and foo to bar
27 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
27 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
28 (branch merge, don't forget to commit)
28 (branch merge, don't forget to commit)
29
29
30 $ cat bar
30 $ cat bar
31 line0
31 line0
32 line1
32 line1
33 line2
33 line2
34
34
35 $ hg ci -m '3: merge with local rename'
35 $ hg ci -m '3: merge with local rename'
36
36
37 $ hg debugindex .hg/store/data/bar.i
37 $ hg debugindex bar
38 rev offset length base linkrev nodeid p1 p2
38 rev offset length base linkrev nodeid p1 p2
39 0 0 77 0 2 d35118874825 000000000000 000000000000
39 0 0 77 0 2 d35118874825 000000000000 000000000000
40 1 77 76 0 3 5345f5ab8abd 000000000000 d35118874825
40 1 77 76 0 3 5345f5ab8abd 000000000000 d35118874825
41
41
42 $ hg debugrename bar
42 $ hg debugrename bar
43 bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2
43 bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2
44
44
45 $ hg debugindex .hg/store/data/foo.i
45 $ hg debugindex foo
46 rev offset length base linkrev nodeid p1 p2
46 rev offset length base linkrev nodeid p1 p2
47 0 0 7 0 0 690b295714ae 000000000000 000000000000
47 0 0 7 0 0 690b295714ae 000000000000 000000000000
48 1 7 13 1 1 9e25c27b8757 690b295714ae 000000000000
48 1 7 13 1 1 9e25c27b8757 690b295714ae 000000000000
49
49
50
50
51 Revert the content change from rev 2:
51 Revert the content change from rev 2:
52
52
53 $ hg up -C 2
53 $ hg up -C 2
54 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
54 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
55 $ rm bar
55 $ rm bar
56 $ echo line1 > bar
56 $ echo line1 > bar
57 $ hg ci -m '4: revert content change from rev 2'
57 $ hg ci -m '4: revert content change from rev 2'
58 created new head
58 created new head
59
59
60 $ hg log --template '{rev}:{node|short} {parents}\n'
60 $ hg log --template '{rev}:{node|short} {parents}\n'
61 4:2263c1be0967 2:0f2ff26688b9
61 4:2263c1be0967 2:0f2ff26688b9
62 3:0555950ead28 2:0f2ff26688b9 1:5cd961e4045d
62 3:0555950ead28 2:0f2ff26688b9 1:5cd961e4045d
63 2:0f2ff26688b9 0:2665aaee66e9
63 2:0f2ff26688b9 0:2665aaee66e9
64 1:5cd961e4045d
64 1:5cd961e4045d
65 0:2665aaee66e9
65 0:2665aaee66e9
66
66
67 This should use bar@rev2 as the ancestor:
67 This should use bar@rev2 as the ancestor:
68
68
69 $ hg --debug merge 3
69 $ hg --debug merge 3
70 searching for copies back to rev 1
70 searching for copies back to rev 1
71 resolving manifests
71 resolving manifests
72 overwrite None partial False
72 overwrite None partial False
73 ancestor 0f2ff26688b9 local 2263c1be0967+ remote 0555950ead28
73 ancestor 0f2ff26688b9 local 2263c1be0967+ remote 0555950ead28
74 bar: versions differ -> m
74 bar: versions differ -> m
75 preserving bar for resolve of bar
75 preserving bar for resolve of bar
76 updating: bar 1/1 files (100.00%)
76 updating: bar 1/1 files (100.00%)
77 picked tool 'internal:merge' for bar (binary False symlink False)
77 picked tool 'internal:merge' for bar (binary False symlink False)
78 merging bar
78 merging bar
79 my bar@2263c1be0967+ other bar@0555950ead28 ancestor bar@0f2ff26688b9
79 my bar@2263c1be0967+ other bar@0555950ead28 ancestor bar@0f2ff26688b9
80 premerge successful
80 premerge successful
81 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
81 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
82 (branch merge, don't forget to commit)
82 (branch merge, don't forget to commit)
83
83
84 $ cat bar
84 $ cat bar
85 line1
85 line1
86 line2
86 line2
87
87
88 $ hg ci -m '5: merge'
88 $ hg ci -m '5: merge'
89
89
90 $ hg debugindex .hg/store/data/bar.i
90 $ hg debugindex bar
91 rev offset length base linkrev nodeid p1 p2
91 rev offset length base linkrev nodeid p1 p2
92 0 0 77 0 2 d35118874825 000000000000 000000000000
92 0 0 77 0 2 d35118874825 000000000000 000000000000
93 1 77 76 0 3 5345f5ab8abd 000000000000 d35118874825
93 1 77 76 0 3 5345f5ab8abd 000000000000 d35118874825
94 2 153 7 2 4 ff4b45017382 d35118874825 000000000000
94 2 153 7 2 4 ff4b45017382 d35118874825 000000000000
95 3 160 13 3 5 3701b4893544 ff4b45017382 5345f5ab8abd
95 3 160 13 3 5 3701b4893544 ff4b45017382 5345f5ab8abd
96
96
97
97
98 Same thing, but with the merge on 3 having the rename
98 Same thing, but with the merge on 3 having the rename
99 on the remote parent:
99 on the remote parent:
100
100
101 $ cd ..
101 $ cd ..
102 $ hg clone -U -r 1 -r 2 a b
102 $ hg clone -U -r 1 -r 2 a b
103 adding changesets
103 adding changesets
104 adding manifests
104 adding manifests
105 adding file changes
105 adding file changes
106 added 3 changesets with 3 changes to 2 files (+1 heads)
106 added 3 changesets with 3 changes to 2 files (+1 heads)
107 $ cd b
107 $ cd b
108
108
109 $ hg up -C 1
109 $ hg up -C 1
110 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
110 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
111
111
112 $ hg merge 2
112 $ hg merge 2
113 merging foo and bar to bar
113 merging foo and bar to bar
114 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
114 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
115 (branch merge, don't forget to commit)
115 (branch merge, don't forget to commit)
116
116
117 $ cat bar
117 $ cat bar
118 line0
118 line0
119 line1
119 line1
120 line2
120 line2
121
121
122 $ hg ci -m '3: merge with remote rename'
122 $ hg ci -m '3: merge with remote rename'
123
123
124 $ hg debugindex .hg/store/data/bar.i
124 $ hg debugindex bar
125 rev offset length base linkrev nodeid p1 p2
125 rev offset length base linkrev nodeid p1 p2
126 0 0 77 0 2 d35118874825 000000000000 000000000000
126 0 0 77 0 2 d35118874825 000000000000 000000000000
127 1 77 76 0 3 5345f5ab8abd 000000000000 d35118874825
127 1 77 76 0 3 5345f5ab8abd 000000000000 d35118874825
128
128
129 $ hg debugrename bar
129 $ hg debugrename bar
130 bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2
130 bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2
131
131
132 $ hg debugindex .hg/store/data/foo.i
132 $ hg debugindex foo
133 rev offset length base linkrev nodeid p1 p2
133 rev offset length base linkrev nodeid p1 p2
134 0 0 7 0 0 690b295714ae 000000000000 000000000000
134 0 0 7 0 0 690b295714ae 000000000000 000000000000
135 1 7 13 1 1 9e25c27b8757 690b295714ae 000000000000
135 1 7 13 1 1 9e25c27b8757 690b295714ae 000000000000
136
136
137
137
138 Revert the content change from rev 2:
138 Revert the content change from rev 2:
139
139
140 $ hg up -C 2
140 $ hg up -C 2
141 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
141 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
142 $ rm bar
142 $ rm bar
143 $ echo line1 > bar
143 $ echo line1 > bar
144 $ hg ci -m '4: revert content change from rev 2'
144 $ hg ci -m '4: revert content change from rev 2'
145 created new head
145 created new head
146
146
147 $ hg log --template '{rev}:{node|short} {parents}\n'
147 $ hg log --template '{rev}:{node|short} {parents}\n'
148 4:2263c1be0967 2:0f2ff26688b9
148 4:2263c1be0967 2:0f2ff26688b9
149 3:3ffa6b9e35f0 1:5cd961e4045d 2:0f2ff26688b9
149 3:3ffa6b9e35f0 1:5cd961e4045d 2:0f2ff26688b9
150 2:0f2ff26688b9 0:2665aaee66e9
150 2:0f2ff26688b9 0:2665aaee66e9
151 1:5cd961e4045d
151 1:5cd961e4045d
152 0:2665aaee66e9
152 0:2665aaee66e9
153
153
154 This should use bar@rev2 as the ancestor:
154 This should use bar@rev2 as the ancestor:
155
155
156 $ hg --debug merge 3
156 $ hg --debug merge 3
157 searching for copies back to rev 1
157 searching for copies back to rev 1
158 resolving manifests
158 resolving manifests
159 overwrite None partial False
159 overwrite None partial False
160 ancestor 0f2ff26688b9 local 2263c1be0967+ remote 3ffa6b9e35f0
160 ancestor 0f2ff26688b9 local 2263c1be0967+ remote 3ffa6b9e35f0
161 bar: versions differ -> m
161 bar: versions differ -> m
162 preserving bar for resolve of bar
162 preserving bar for resolve of bar
163 updating: bar 1/1 files (100.00%)
163 updating: bar 1/1 files (100.00%)
164 picked tool 'internal:merge' for bar (binary False symlink False)
164 picked tool 'internal:merge' for bar (binary False symlink False)
165 merging bar
165 merging bar
166 my bar@2263c1be0967+ other bar@3ffa6b9e35f0 ancestor bar@0f2ff26688b9
166 my bar@2263c1be0967+ other bar@3ffa6b9e35f0 ancestor bar@0f2ff26688b9
167 premerge successful
167 premerge successful
168 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
168 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
169 (branch merge, don't forget to commit)
169 (branch merge, don't forget to commit)
170
170
171 $ cat bar
171 $ cat bar
172 line1
172 line1
173 line2
173 line2
174
174
175 $ hg ci -m '5: merge'
175 $ hg ci -m '5: merge'
176
176
177 $ hg debugindex .hg/store/data/bar.i
177 $ hg debugindex bar
178 rev offset length base linkrev nodeid p1 p2
178 rev offset length base linkrev nodeid p1 p2
179 0 0 77 0 2 d35118874825 000000000000 000000000000
179 0 0 77 0 2 d35118874825 000000000000 000000000000
180 1 77 76 0 3 5345f5ab8abd 000000000000 d35118874825
180 1 77 76 0 3 5345f5ab8abd 000000000000 d35118874825
181 2 153 7 2 4 ff4b45017382 d35118874825 000000000000
181 2 153 7 2 4 ff4b45017382 d35118874825 000000000000
182 3 160 13 3 5 3701b4893544 ff4b45017382 5345f5ab8abd
182 3 160 13 3 5 3701b4893544 ff4b45017382 5345f5ab8abd
183
183
@@ -1,145 +1,145 b''
1 initial
1 initial
2 $ hg init test-a
2 $ hg init test-a
3 $ cd test-a
3 $ cd test-a
4 $ cat >test.txt <<"EOF"
4 $ cat >test.txt <<"EOF"
5 > 1
5 > 1
6 > 2
6 > 2
7 > 3
7 > 3
8 > EOF
8 > EOF
9 $ hg add test.txt
9 $ hg add test.txt
10 $ hg commit -m "Initial"
10 $ hg commit -m "Initial"
11
11
12 clone
12 clone
13 $ cd ..
13 $ cd ..
14 $ hg clone test-a test-b
14 $ hg clone test-a test-b
15 updating to branch default
15 updating to branch default
16 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
16 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
17
17
18 change test-a
18 change test-a
19 $ cd test-a
19 $ cd test-a
20 $ cat >test.txt <<"EOF"
20 $ cat >test.txt <<"EOF"
21 > one
21 > one
22 > two
22 > two
23 > three
23 > three
24 > EOF
24 > EOF
25 $ hg commit -m "Numbers as words"
25 $ hg commit -m "Numbers as words"
26
26
27 change test-b
27 change test-b
28 $ cd ../test-b
28 $ cd ../test-b
29 $ cat >test.txt <<"EOF"
29 $ cat >test.txt <<"EOF"
30 > 1
30 > 1
31 > 2.5
31 > 2.5
32 > 3
32 > 3
33 > EOF
33 > EOF
34 $ hg commit -m "2 -> 2.5"
34 $ hg commit -m "2 -> 2.5"
35
35
36 now pull and merge from test-a
36 now pull and merge from test-a
37 $ hg pull ../test-a
37 $ hg pull ../test-a
38 pulling from ../test-a
38 pulling from ../test-a
39 searching for changes
39 searching for changes
40 adding changesets
40 adding changesets
41 adding manifests
41 adding manifests
42 adding file changes
42 adding file changes
43 added 1 changesets with 1 changes to 1 files (+1 heads)
43 added 1 changesets with 1 changes to 1 files (+1 heads)
44 (run 'hg heads' to see heads, 'hg merge' to merge)
44 (run 'hg heads' to see heads, 'hg merge' to merge)
45 $ hg merge
45 $ hg merge
46 merging test.txt
46 merging test.txt
47 warning: conflicts during merge.
47 warning: conflicts during merge.
48 merging test.txt failed!
48 merging test.txt failed!
49 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
49 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
50 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
50 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
51 [1]
51 [1]
52 resolve conflict
52 resolve conflict
53 $ cat >test.txt <<"EOF"
53 $ cat >test.txt <<"EOF"
54 > one
54 > one
55 > two-point-five
55 > two-point-five
56 > three
56 > three
57 > EOF
57 > EOF
58 $ rm -f *.orig
58 $ rm -f *.orig
59 $ hg resolve -m test.txt
59 $ hg resolve -m test.txt
60 $ hg commit -m "Merge 1"
60 $ hg commit -m "Merge 1"
61
61
62 change test-a again
62 change test-a again
63 $ cd ../test-a
63 $ cd ../test-a
64 $ cat >test.txt <<"EOF"
64 $ cat >test.txt <<"EOF"
65 > one
65 > one
66 > two-point-one
66 > two-point-one
67 > three
67 > three
68 > EOF
68 > EOF
69 $ hg commit -m "two -> two-point-one"
69 $ hg commit -m "two -> two-point-one"
70
70
71 pull and merge from test-a again
71 pull and merge from test-a again
72 $ cd ../test-b
72 $ cd ../test-b
73 $ hg pull ../test-a
73 $ hg pull ../test-a
74 pulling from ../test-a
74 pulling from ../test-a
75 searching for changes
75 searching for changes
76 adding changesets
76 adding changesets
77 adding manifests
77 adding manifests
78 adding file changes
78 adding file changes
79 added 1 changesets with 1 changes to 1 files (+1 heads)
79 added 1 changesets with 1 changes to 1 files (+1 heads)
80 (run 'hg heads' to see heads, 'hg merge' to merge)
80 (run 'hg heads' to see heads, 'hg merge' to merge)
81 $ hg merge --debug
81 $ hg merge --debug
82 searching for copies back to rev 1
82 searching for copies back to rev 1
83 resolving manifests
83 resolving manifests
84 overwrite None partial False
84 overwrite None partial False
85 ancestor 96b70246a118 local 50c3a7e29886+ remote 40d11a4173a8
85 ancestor 96b70246a118 local 50c3a7e29886+ remote 40d11a4173a8
86 test.txt: versions differ -> m
86 test.txt: versions differ -> m
87 preserving test.txt for resolve of test.txt
87 preserving test.txt for resolve of test.txt
88 updating: test.txt 1/1 files (100.00%)
88 updating: test.txt 1/1 files (100.00%)
89 picked tool 'internal:merge' for test.txt (binary False symlink False)
89 picked tool 'internal:merge' for test.txt (binary False symlink False)
90 merging test.txt
90 merging test.txt
91 my test.txt@50c3a7e29886+ other test.txt@40d11a4173a8 ancestor test.txt@96b70246a118
91 my test.txt@50c3a7e29886+ other test.txt@40d11a4173a8 ancestor test.txt@96b70246a118
92 warning: conflicts during merge.
92 warning: conflicts during merge.
93 merging test.txt failed!
93 merging test.txt failed!
94 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
94 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
95 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
95 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
96 [1]
96 [1]
97
97
98 $ cat test.txt
98 $ cat test.txt
99 one
99 one
100 <<<<<<< local
100 <<<<<<< local
101 two-point-five
101 two-point-five
102 =======
102 =======
103 two-point-one
103 two-point-one
104 >>>>>>> other
104 >>>>>>> other
105 three
105 three
106
106
107 $ hg debugindex .hg/store/data/test.txt.i
107 $ hg debugindex test.txt
108 rev offset length base linkrev nodeid p1 p2
108 rev offset length base linkrev nodeid p1 p2
109 0 0 7 0 0 01365c4cca56 000000000000 000000000000
109 0 0 7 0 0 01365c4cca56 000000000000 000000000000
110 1 7 9 1 1 7b013192566a 01365c4cca56 000000000000
110 1 7 9 1 1 7b013192566a 01365c4cca56 000000000000
111 2 16 15 2 2 8fe46a3eb557 01365c4cca56 000000000000
111 2 16 15 2 2 8fe46a3eb557 01365c4cca56 000000000000
112 3 31 27 2 3 fc3148072371 7b013192566a 8fe46a3eb557
112 3 31 27 2 3 fc3148072371 7b013192566a 8fe46a3eb557
113 4 58 25 4 4 d40249267ae3 8fe46a3eb557 000000000000
113 4 58 25 4 4 d40249267ae3 8fe46a3eb557 000000000000
114
114
115 $ hg log
115 $ hg log
116 changeset: 4:40d11a4173a8
116 changeset: 4:40d11a4173a8
117 tag: tip
117 tag: tip
118 parent: 2:96b70246a118
118 parent: 2:96b70246a118
119 user: test
119 user: test
120 date: Thu Jan 01 00:00:00 1970 +0000
120 date: Thu Jan 01 00:00:00 1970 +0000
121 summary: two -> two-point-one
121 summary: two -> two-point-one
122
122
123 changeset: 3:50c3a7e29886
123 changeset: 3:50c3a7e29886
124 parent: 1:d1e159716d41
124 parent: 1:d1e159716d41
125 parent: 2:96b70246a118
125 parent: 2:96b70246a118
126 user: test
126 user: test
127 date: Thu Jan 01 00:00:00 1970 +0000
127 date: Thu Jan 01 00:00:00 1970 +0000
128 summary: Merge 1
128 summary: Merge 1
129
129
130 changeset: 2:96b70246a118
130 changeset: 2:96b70246a118
131 parent: 0:b1832b9d912a
131 parent: 0:b1832b9d912a
132 user: test
132 user: test
133 date: Thu Jan 01 00:00:00 1970 +0000
133 date: Thu Jan 01 00:00:00 1970 +0000
134 summary: Numbers as words
134 summary: Numbers as words
135
135
136 changeset: 1:d1e159716d41
136 changeset: 1:d1e159716d41
137 user: test
137 user: test
138 date: Thu Jan 01 00:00:00 1970 +0000
138 date: Thu Jan 01 00:00:00 1970 +0000
139 summary: 2 -> 2.5
139 summary: 2 -> 2.5
140
140
141 changeset: 0:b1832b9d912a
141 changeset: 0:b1832b9d912a
142 user: test
142 user: test
143 date: Thu Jan 01 00:00:00 1970 +0000
143 date: Thu Jan 01 00:00:00 1970 +0000
144 summary: Initial
144 summary: Initial
145
145
@@ -1,157 +1,157 b''
1 $ hg init
1 $ hg init
2
2
3 $ echo "[merge]" >> .hg/hgrc
3 $ echo "[merge]" >> .hg/hgrc
4 $ echo "followcopies = 1" >> .hg/hgrc
4 $ echo "followcopies = 1" >> .hg/hgrc
5
5
6 $ echo foo > a
6 $ echo foo > a
7 $ echo foo > a2
7 $ echo foo > a2
8 $ hg add a a2
8 $ hg add a a2
9 $ hg ci -m "start"
9 $ hg ci -m "start"
10
10
11 $ hg mv a b
11 $ hg mv a b
12 $ hg mv a2 b2
12 $ hg mv a2 b2
13 $ hg ci -m "rename"
13 $ hg ci -m "rename"
14
14
15 $ hg co 0
15 $ hg co 0
16 2 files updated, 0 files merged, 2 files removed, 0 files unresolved
16 2 files updated, 0 files merged, 2 files removed, 0 files unresolved
17
17
18 $ echo blahblah > a
18 $ echo blahblah > a
19 $ echo blahblah > a2
19 $ echo blahblah > a2
20 $ hg mv a2 c2
20 $ hg mv a2 c2
21 $ hg ci -m "modify"
21 $ hg ci -m "modify"
22 created new head
22 created new head
23
23
24 $ hg merge -y --debug
24 $ hg merge -y --debug
25 searching for copies back to rev 1
25 searching for copies back to rev 1
26 unmatched files in local:
26 unmatched files in local:
27 c2
27 c2
28 unmatched files in other:
28 unmatched files in other:
29 b
29 b
30 b2
30 b2
31 all copies found (* = to merge, ! = divergent):
31 all copies found (* = to merge, ! = divergent):
32 c2 -> a2 !
32 c2 -> a2 !
33 b -> a *
33 b -> a *
34 b2 -> a2 !
34 b2 -> a2 !
35 checking for directory renames
35 checking for directory renames
36 a2: divergent renames -> dr
36 a2: divergent renames -> dr
37 resolving manifests
37 resolving manifests
38 overwrite None partial False
38 overwrite None partial False
39 ancestor af1939970a1c local 044f8520aeeb+ remote 85c198ef2f6c
39 ancestor af1939970a1c local 044f8520aeeb+ remote 85c198ef2f6c
40 a: remote moved to b -> m
40 a: remote moved to b -> m
41 b2: remote created -> g
41 b2: remote created -> g
42 preserving a for resolve of b
42 preserving a for resolve of b
43 removing a
43 removing a
44 updating: a 1/3 files (33.33%)
44 updating: a 1/3 files (33.33%)
45 picked tool 'internal:merge' for b (binary False symlink False)
45 picked tool 'internal:merge' for b (binary False symlink False)
46 merging a and b to b
46 merging a and b to b
47 my b@044f8520aeeb+ other b@85c198ef2f6c ancestor a@af1939970a1c
47 my b@044f8520aeeb+ other b@85c198ef2f6c ancestor a@af1939970a1c
48 premerge successful
48 premerge successful
49 updating: a2 2/3 files (66.67%)
49 updating: a2 2/3 files (66.67%)
50 note: possible conflict - a2 was renamed multiple times to:
50 note: possible conflict - a2 was renamed multiple times to:
51 c2
51 c2
52 b2
52 b2
53 updating: b2 3/3 files (100.00%)
53 updating: b2 3/3 files (100.00%)
54 getting b2
54 getting b2
55 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
55 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
56 (branch merge, don't forget to commit)
56 (branch merge, don't forget to commit)
57
57
58 $ hg status -AC
58 $ hg status -AC
59 M b
59 M b
60 a
60 a
61 M b2
61 M b2
62 R a
62 R a
63 C c2
63 C c2
64
64
65 $ cat b
65 $ cat b
66 blahblah
66 blahblah
67
67
68 $ hg ci -m "merge"
68 $ hg ci -m "merge"
69
69
70 $ hg debugindex .hg/store/data/b.i
70 $ hg debugindex b
71 rev offset length base linkrev nodeid p1 p2
71 rev offset length base linkrev nodeid p1 p2
72 0 0 67 0 1 57eacc201a7f 000000000000 000000000000
72 0 0 67 0 1 57eacc201a7f 000000000000 000000000000
73 1 67 72 1 3 4727ba907962 000000000000 57eacc201a7f
73 1 67 72 1 3 4727ba907962 000000000000 57eacc201a7f
74
74
75 $ hg debugrename b
75 $ hg debugrename b
76 b renamed from a:dd03b83622e78778b403775d0d074b9ac7387a66
76 b renamed from a:dd03b83622e78778b403775d0d074b9ac7387a66
77
77
78 This used to trigger a "divergent renames" warning, despite no renames
78 This used to trigger a "divergent renames" warning, despite no renames
79
79
80 $ hg cp b b3
80 $ hg cp b b3
81 $ hg cp b b4
81 $ hg cp b b4
82 $ hg ci -A -m 'copy b twice'
82 $ hg ci -A -m 'copy b twice'
83 $ hg up eb92d88a9712
83 $ hg up eb92d88a9712
84 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
84 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
85 $ hg up
85 $ hg up
86 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
86 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
87 $ hg rm b3 b4
87 $ hg rm b3 b4
88 $ hg ci -m 'clean up a bit of our mess'
88 $ hg ci -m 'clean up a bit of our mess'
89
89
90 We'd rather not warn on divergent renames done in the same changeset (issue2113)
90 We'd rather not warn on divergent renames done in the same changeset (issue2113)
91
91
92 $ hg cp b b3
92 $ hg cp b b3
93 $ hg mv b b4
93 $ hg mv b b4
94 $ hg ci -A -m 'divergent renames in same changeset'
94 $ hg ci -A -m 'divergent renames in same changeset'
95 $ hg up c761c6948de0
95 $ hg up c761c6948de0
96 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
96 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
97 $ hg up
97 $ hg up
98 note: possible conflict - b was renamed multiple times to:
98 note: possible conflict - b was renamed multiple times to:
99 b3
99 b3
100 b4
100 b4
101 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
101 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
102
102
103 Check for issue2642
103 Check for issue2642
104
104
105 $ hg init t
105 $ hg init t
106 $ cd t
106 $ cd t
107
107
108 $ echo c0 > f1
108 $ echo c0 > f1
109 $ hg ci -Aqm0
109 $ hg ci -Aqm0
110
110
111 $ hg up null -q
111 $ hg up null -q
112 $ echo c1 > f1 # backport
112 $ echo c1 > f1 # backport
113 $ hg ci -Aqm1
113 $ hg ci -Aqm1
114 $ hg mv f1 f2
114 $ hg mv f1 f2
115 $ hg ci -qm2
115 $ hg ci -qm2
116
116
117 $ hg up 0 -q
117 $ hg up 0 -q
118 $ hg merge 1 -q --tool internal:local
118 $ hg merge 1 -q --tool internal:local
119 $ hg ci -qm3
119 $ hg ci -qm3
120
120
121 $ hg merge 2
121 $ hg merge 2
122 merging f1 and f2 to f2
122 merging f1 and f2 to f2
123 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
123 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
124 (branch merge, don't forget to commit)
124 (branch merge, don't forget to commit)
125
125
126 $ cat f2
126 $ cat f2
127 c0
127 c0
128
128
129 Check for issue2089
129 Check for issue2089
130
130
131 $ hg init repo2089
131 $ hg init repo2089
132 $ cd repo2089
132 $ cd repo2089
133
133
134 $ echo c0 > f1
134 $ echo c0 > f1
135 $ hg ci -Aqm0
135 $ hg ci -Aqm0
136
136
137 $ hg up null -q
137 $ hg up null -q
138 $ echo c1 > f1
138 $ echo c1 > f1
139 $ hg ci -Aqm1
139 $ hg ci -Aqm1
140
140
141 $ hg up 0 -q
141 $ hg up 0 -q
142 $ hg merge 1 -q --tool internal:local
142 $ hg merge 1 -q --tool internal:local
143 $ echo c2 > f1
143 $ echo c2 > f1
144 $ hg ci -qm2
144 $ hg ci -qm2
145
145
146 $ hg up 1 -q
146 $ hg up 1 -q
147 $ hg mv f1 f2
147 $ hg mv f1 f2
148 $ hg ci -Aqm3
148 $ hg ci -Aqm3
149
149
150 $ hg up 2 -q
150 $ hg up 2 -q
151 $ hg merge 3
151 $ hg merge 3
152 merging f1 and f2 to f2
152 merging f1 and f2 to f2
153 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
153 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
154 (branch merge, don't forget to commit)
154 (branch merge, don't forget to commit)
155
155
156 $ cat f2
156 $ cat f2
157 c2
157 c2
@@ -1,21 +1,21 b''
1 $ hg init repo
1 $ hg init repo
2 $ cd repo
2 $ cd repo
3
3
4 $ touch foo
4 $ touch foo
5 $ hg ci -Am 'add foo'
5 $ hg ci -Am 'add foo'
6 adding foo
6 adding foo
7
7
8 $ hg up -C null
8 $ hg up -C null
9 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
9 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
10
10
11 this should be stored as a delta against rev 0
11 this should be stored as a delta against rev 0
12
12
13 $ echo foo bar baz > foo
13 $ echo foo bar baz > foo
14 $ hg ci -Am 'add foo again'
14 $ hg ci -Am 'add foo again'
15 adding foo
15 adding foo
16 created new head
16 created new head
17
17
18 $ hg debugindex .hg/store/data/foo.i
18 $ hg debugindex foo
19 rev offset length base linkrev nodeid p1 p2
19 rev offset length base linkrev nodeid p1 p2
20 0 0 0 0 0 b80de5d13875 000000000000 000000000000
20 0 0 0 0 0 b80de5d13875 000000000000 000000000000
21 1 0 24 0 1 0376abec49b8 000000000000 000000000000
21 1 0 24 0 1 0376abec49b8 000000000000 000000000000
@@ -1,141 +1,143 b''
1 test stripping of filelogs where the linkrev doesn't always increase
1 test stripping of filelogs where the linkrev doesn't always increase
2
2
3 $ echo '[extensions]' >> $HGRCPATH
3 $ echo '[extensions]' >> $HGRCPATH
4 $ echo 'hgext.mq =' >> $HGRCPATH
4 $ echo 'hgext.mq =' >> $HGRCPATH
5 $ hg init orig
5 $ hg init orig
6 $ cd orig
6 $ cd orig
7 $ commit()
7 $ commit()
8 > {
8 > {
9 > hg up -qC null
9 > hg up -qC null
10 > count=1
10 > count=1
11 > for i in "$@"; do
11 > for i in "$@"; do
12 > for f in $i; do
12 > for f in $i; do
13 > echo $count > $f
13 > echo $count > $f
14 > done
14 > done
15 > count=`expr $count + 1`
15 > count=`expr $count + 1`
16 > done
16 > done
17 > hg commit -qAm "$*"
17 > hg commit -qAm "$*"
18 > }
18 > }
19
19
20 2 1 0 2 0 1 2
20 2 1 0 2 0 1 2
21
21
22 $ commit '201 210'
22 $ commit '201 210'
23 $ commit '102 120' '210'
23 $ commit '102 120' '210'
24 $ commit '021'
24 $ commit '021'
25 $ commit '201' '021 120'
25 $ commit '201' '021 120'
26 $ commit '012 021' '102 201' '120 210'
26 $ commit '012 021' '102 201' '120 210'
27 $ commit 'manifest-file'
27 $ commit 'manifest-file'
28 $ commit '102 120' '012 210' '021 201'
28 $ commit '102 120' '012 210' '021 201'
29 $ commit '201 210' '021 120' '012 102'
29 $ commit '201 210' '021 120' '012 102'
30 $ HGUSER=another-user; export HGUSER
30 $ HGUSER=another-user; export HGUSER
31 $ commit 'manifest-file'
31 $ commit 'manifest-file'
32 $ commit '012' 'manifest-file'
32 $ commit '012' 'manifest-file'
33 $ cd ..
33 $ cd ..
34 $ hg clone -q -U -r -1 -r -2 -r -3 -r -4 -r -6 orig crossed
34 $ hg clone -q -U -r -1 -r -2 -r -3 -r -4 -r -6 orig crossed
35 $ for i in crossed/.hg/store/00manifest.i crossed/.hg/store/data/*.i; do
35 $ cd crossed
36 > echo $i
36 $ hg debugindex .hg/store/00manifest.i
37 > hg debugindex $i
38 > echo
39 > done
40 crossed/.hg/store/00manifest.i
41 rev offset length base linkrev nodeid p1 p2
37 rev offset length base linkrev nodeid p1 p2
42 0 0 112 0 0 6f105cbb914d 000000000000 000000000000
38 0 0 112 0 0 6f105cbb914d 000000000000 000000000000
43 1 112 56 1 3 1b55917b3699 000000000000 000000000000
39 1 112 56 1 3 1b55917b3699 000000000000 000000000000
44 2 168 123 1 1 8f3d04e263e5 000000000000 000000000000
40 2 168 123 1 1 8f3d04e263e5 000000000000 000000000000
45 3 291 122 1 2 f0ef8726ac4f 000000000000 000000000000
41 3 291 122 1 2 f0ef8726ac4f 000000000000 000000000000
46 4 413 87 4 4 0b76e38b4070 000000000000 000000000000
42 4 413 87 4 4 0b76e38b4070 000000000000 000000000000
47
43
48 crossed/.hg/store/data/012.i
44 $ for i in 012 021 102 120 201 210 manifest-file; do
45 > echo $i
46 > hg debugindex $i
47 > echo
48 > done
49 012
49 rev offset length base linkrev nodeid p1 p2
50 rev offset length base linkrev nodeid p1 p2
50 0 0 3 0 0 b8e02f643373 000000000000 000000000000
51 0 0 3 0 0 b8e02f643373 000000000000 000000000000
51 1 3 3 1 1 5d9299349fc0 000000000000 000000000000
52 1 3 3 1 1 5d9299349fc0 000000000000 000000000000
52 2 6 3 2 2 2661d26c6496 000000000000 000000000000
53 2 6 3 2 2 2661d26c6496 000000000000 000000000000
53
54
54 crossed/.hg/store/data/021.i
55 021
55 rev offset length base linkrev nodeid p1 p2
56 rev offset length base linkrev nodeid p1 p2
56 0 0 3 0 0 b8e02f643373 000000000000 000000000000
57 0 0 3 0 0 b8e02f643373 000000000000 000000000000
57 1 3 3 1 2 5d9299349fc0 000000000000 000000000000
58 1 3 3 1 2 5d9299349fc0 000000000000 000000000000
58 2 6 3 2 1 2661d26c6496 000000000000 000000000000
59 2 6 3 2 1 2661d26c6496 000000000000 000000000000
59
60
60 crossed/.hg/store/data/102.i
61 102
61 rev offset length base linkrev nodeid p1 p2
62 rev offset length base linkrev nodeid p1 p2
62 0 0 3 0 1 b8e02f643373 000000000000 000000000000
63 0 0 3 0 1 b8e02f643373 000000000000 000000000000
63 1 3 3 1 0 5d9299349fc0 000000000000 000000000000
64 1 3 3 1 0 5d9299349fc0 000000000000 000000000000
64 2 6 3 2 2 2661d26c6496 000000000000 000000000000
65 2 6 3 2 2 2661d26c6496 000000000000 000000000000
65
66
66 crossed/.hg/store/data/120.i
67 120
67 rev offset length base linkrev nodeid p1 p2
68 rev offset length base linkrev nodeid p1 p2
68 0 0 3 0 1 b8e02f643373 000000000000 000000000000
69 0 0 3 0 1 b8e02f643373 000000000000 000000000000
69 1 3 3 1 2 5d9299349fc0 000000000000 000000000000
70 1 3 3 1 2 5d9299349fc0 000000000000 000000000000
70 2 6 3 2 0 2661d26c6496 000000000000 000000000000
71 2 6 3 2 0 2661d26c6496 000000000000 000000000000
71
72
72 crossed/.hg/store/data/201.i
73 201
73 rev offset length base linkrev nodeid p1 p2
74 rev offset length base linkrev nodeid p1 p2
74 0 0 3 0 2 b8e02f643373 000000000000 000000000000
75 0 0 3 0 2 b8e02f643373 000000000000 000000000000
75 1 3 3 1 0 5d9299349fc0 000000000000 000000000000
76 1 3 3 1 0 5d9299349fc0 000000000000 000000000000
76 2 6 3 2 1 2661d26c6496 000000000000 000000000000
77 2 6 3 2 1 2661d26c6496 000000000000 000000000000
77
78
78 crossed/.hg/store/data/210.i
79 210
79 rev offset length base linkrev nodeid p1 p2
80 rev offset length base linkrev nodeid p1 p2
80 0 0 3 0 2 b8e02f643373 000000000000 000000000000
81 0 0 3 0 2 b8e02f643373 000000000000 000000000000
81 1 3 3 1 1 5d9299349fc0 000000000000 000000000000
82 1 3 3 1 1 5d9299349fc0 000000000000 000000000000
82 2 6 3 2 0 2661d26c6496 000000000000 000000000000
83 2 6 3 2 0 2661d26c6496 000000000000 000000000000
83
84
84 crossed/.hg/store/data/manifest-file.i
85 manifest-file
85 rev offset length base linkrev nodeid p1 p2
86 rev offset length base linkrev nodeid p1 p2
86 0 0 3 0 3 b8e02f643373 000000000000 000000000000
87 0 0 3 0 3 b8e02f643373 000000000000 000000000000
87 1 3 3 1 4 5d9299349fc0 000000000000 000000000000
88 1 3 3 1 4 5d9299349fc0 000000000000 000000000000
88
89
90 $ cd ..
89 $ for i in 0 1 2 3 4; do
91 $ for i in 0 1 2 3 4; do
90 > hg clone -q -U --pull crossed $i
92 > hg clone -q -U --pull crossed $i
91 > echo "% Trying to strip revision $i"
93 > echo "% Trying to strip revision $i"
92 > hg --cwd $i strip $i
94 > hg --cwd $i strip $i
93 > echo "% Verifying"
95 > echo "% Verifying"
94 > hg --cwd $i verify
96 > hg --cwd $i verify
95 > echo
97 > echo
96 > done
98 > done
97 % Trying to strip revision 0
99 % Trying to strip revision 0
98 saved backup bundle to $TESTTMP/0/.hg/strip-backup/*-backup.hg (glob)
100 saved backup bundle to $TESTTMP/0/.hg/strip-backup/*-backup.hg (glob)
99 % Verifying
101 % Verifying
100 checking changesets
102 checking changesets
101 checking manifests
103 checking manifests
102 crosschecking files in changesets and manifests
104 crosschecking files in changesets and manifests
103 checking files
105 checking files
104 7 files, 4 changesets, 15 total revisions
106 7 files, 4 changesets, 15 total revisions
105
107
106 % Trying to strip revision 1
108 % Trying to strip revision 1
107 saved backup bundle to $TESTTMP/1/.hg/strip-backup/*-backup.hg (glob)
109 saved backup bundle to $TESTTMP/1/.hg/strip-backup/*-backup.hg (glob)
108 % Verifying
110 % Verifying
109 checking changesets
111 checking changesets
110 checking manifests
112 checking manifests
111 crosschecking files in changesets and manifests
113 crosschecking files in changesets and manifests
112 checking files
114 checking files
113 7 files, 4 changesets, 14 total revisions
115 7 files, 4 changesets, 14 total revisions
114
116
115 % Trying to strip revision 2
117 % Trying to strip revision 2
116 saved backup bundle to $TESTTMP/2/.hg/strip-backup/*-backup.hg (glob)
118 saved backup bundle to $TESTTMP/2/.hg/strip-backup/*-backup.hg (glob)
117 % Verifying
119 % Verifying
118 checking changesets
120 checking changesets
119 checking manifests
121 checking manifests
120 crosschecking files in changesets and manifests
122 crosschecking files in changesets and manifests
121 checking files
123 checking files
122 7 files, 4 changesets, 14 total revisions
124 7 files, 4 changesets, 14 total revisions
123
125
124 % Trying to strip revision 3
126 % Trying to strip revision 3
125 saved backup bundle to $TESTTMP/3/.hg/strip-backup/*-backup.hg (glob)
127 saved backup bundle to $TESTTMP/3/.hg/strip-backup/*-backup.hg (glob)
126 % Verifying
128 % Verifying
127 checking changesets
129 checking changesets
128 checking manifests
130 checking manifests
129 crosschecking files in changesets and manifests
131 crosschecking files in changesets and manifests
130 checking files
132 checking files
131 7 files, 4 changesets, 19 total revisions
133 7 files, 4 changesets, 19 total revisions
132
134
133 % Trying to strip revision 4
135 % Trying to strip revision 4
134 saved backup bundle to $TESTTMP/4/.hg/strip-backup/*-backup.hg (glob)
136 saved backup bundle to $TESTTMP/4/.hg/strip-backup/*-backup.hg (glob)
135 % Verifying
137 % Verifying
136 checking changesets
138 checking changesets
137 checking manifests
139 checking manifests
138 crosschecking files in changesets and manifests
140 crosschecking files in changesets and manifests
139 checking files
141 checking files
140 7 files, 4 changesets, 19 total revisions
142 7 files, 4 changesets, 19 total revisions
141
143
General Comments 0
You need to be logged in to leave comments. Login now