##// END OF EJS Templates
py3: byteify test-push-race.t
Matt Harbison -
r40905:d3d52cc9 default
parent child Browse files
Show More
@@ -1,660 +1,661 b''
1 test-abort-checkin.t
1 test-abort-checkin.t
2 test-absorb-filefixupstate.py
2 test-absorb-filefixupstate.py
3 test-absorb-phase.t
3 test-absorb-phase.t
4 test-absorb-rename.t
4 test-absorb-rename.t
5 test-absorb-strip.t
5 test-absorb-strip.t
6 test-absorb.t
6 test-absorb.t
7 test-add.t
7 test-add.t
8 test-addremove-similar.t
8 test-addremove-similar.t
9 test-addremove.t
9 test-addremove.t
10 test-alias.t
10 test-alias.t
11 test-amend-subrepo.t
11 test-amend-subrepo.t
12 test-amend.t
12 test-amend.t
13 test-ancestor.py
13 test-ancestor.py
14 test-annotate.py
14 test-annotate.py
15 test-annotate.t
15 test-annotate.t
16 test-archive-symlinks.t
16 test-archive-symlinks.t
17 test-archive.t
17 test-archive.t
18 test-atomictempfile.py
18 test-atomictempfile.py
19 test-audit-path.t
19 test-audit-path.t
20 test-audit-subrepo.t
20 test-audit-subrepo.t
21 test-automv.t
21 test-automv.t
22 test-backout.t
22 test-backout.t
23 test-backwards-remove.t
23 test-backwards-remove.t
24 test-bad-extension.t
24 test-bad-extension.t
25 test-bad-pull.t
25 test-bad-pull.t
26 test-basic.t
26 test-basic.t
27 test-bdiff.py
27 test-bdiff.py
28 test-bheads.t
28 test-bheads.t
29 test-bisect.t
29 test-bisect.t
30 test-bisect2.t
30 test-bisect2.t
31 test-bisect3.t
31 test-bisect3.t
32 test-blackbox.t
32 test-blackbox.t
33 test-bookmarks-current.t
33 test-bookmarks-current.t
34 test-bookmarks-merge.t
34 test-bookmarks-merge.t
35 test-bookmarks-pushpull.t
35 test-bookmarks-pushpull.t
36 test-bookmarks-rebase.t
36 test-bookmarks-rebase.t
37 test-bookmarks-strip.t
37 test-bookmarks-strip.t
38 test-bookmarks.t
38 test-bookmarks.t
39 test-branch-change.t
39 test-branch-change.t
40 test-branch-option.t
40 test-branch-option.t
41 test-branch-tag-confict.t
41 test-branch-tag-confict.t
42 test-branches.t
42 test-branches.t
43 test-bundle-phases.t
43 test-bundle-phases.t
44 test-bundle-r.t
44 test-bundle-r.t
45 test-bundle-type.t
45 test-bundle-type.t
46 test-bundle-vs-outgoing.t
46 test-bundle-vs-outgoing.t
47 test-bundle.t
47 test-bundle.t
48 test-bundle2-exchange.t
48 test-bundle2-exchange.t
49 test-bundle2-format.t
49 test-bundle2-format.t
50 test-bundle2-multiple-changegroups.t
50 test-bundle2-multiple-changegroups.t
51 test-bundle2-pushback.t
51 test-bundle2-pushback.t
52 test-bundle2-remote-changegroup.t
52 test-bundle2-remote-changegroup.t
53 test-cache-abuse.t
53 test-cache-abuse.t
54 test-cappedreader.py
54 test-cappedreader.py
55 test-casecollision.t
55 test-casecollision.t
56 test-cat.t
56 test-cat.t
57 test-cbor.py
57 test-cbor.py
58 test-censor.t
58 test-censor.t
59 test-changelog-exec.t
59 test-changelog-exec.t
60 test-check-code.t
60 test-check-code.t
61 test-check-commit.t
61 test-check-commit.t
62 test-check-config.py
62 test-check-config.py
63 test-check-config.t
63 test-check-config.t
64 test-check-execute.t
64 test-check-execute.t
65 test-check-interfaces.py
65 test-check-interfaces.py
66 test-check-module-imports.t
66 test-check-module-imports.t
67 test-check-py3-compat.t
67 test-check-py3-compat.t
68 test-check-pyflakes.t
68 test-check-pyflakes.t
69 test-check-pylint.t
69 test-check-pylint.t
70 test-check-shbang.t
70 test-check-shbang.t
71 test-children.t
71 test-children.t
72 test-churn.t
72 test-churn.t
73 test-clone-cgi.t
73 test-clone-cgi.t
74 test-clone-pull-corruption.t
74 test-clone-pull-corruption.t
75 test-clone-r.t
75 test-clone-r.t
76 test-clone-uncompressed.t
76 test-clone-uncompressed.t
77 test-clone-update-order.t
77 test-clone-update-order.t
78 test-clone.t
78 test-clone.t
79 test-clonebundles.t
79 test-clonebundles.t
80 test-close-head.t
80 test-close-head.t
81 test-commandserver.t
81 test-commandserver.t
82 test-commit-amend.t
82 test-commit-amend.t
83 test-commit-interactive.t
83 test-commit-interactive.t
84 test-commit-multiple.t
84 test-commit-multiple.t
85 test-commit-unresolved.t
85 test-commit-unresolved.t
86 test-commit.t
86 test-commit.t
87 test-committer.t
87 test-committer.t
88 test-completion.t
88 test-completion.t
89 test-config-env.py
89 test-config-env.py
90 test-config.t
90 test-config.t
91 test-conflict.t
91 test-conflict.t
92 test-confused-revert.t
92 test-confused-revert.t
93 test-context-metadata.t
93 test-context-metadata.t
94 test-context.py
94 test-context.py
95 test-contrib-check-code.t
95 test-contrib-check-code.t
96 test-contrib-check-commit.t
96 test-contrib-check-commit.t
97 test-contrib-dumprevlog.t
97 test-contrib-dumprevlog.t
98 test-contrib-perf.t
98 test-contrib-perf.t
99 test-contrib-relnotes.t
99 test-contrib-relnotes.t
100 test-contrib-testparseutil.t
100 test-contrib-testparseutil.t
101 test-contrib.t
101 test-contrib.t
102 test-convert-authormap.t
102 test-convert-authormap.t
103 test-convert-clonebranches.t
103 test-convert-clonebranches.t
104 test-convert-cvs-branch.t
104 test-convert-cvs-branch.t
105 test-convert-cvs-detectmerge.t
105 test-convert-cvs-detectmerge.t
106 test-convert-cvs-synthetic.t
106 test-convert-cvs-synthetic.t
107 test-convert-cvs.t
107 test-convert-cvs.t
108 test-convert-cvsnt-mergepoints.t
108 test-convert-cvsnt-mergepoints.t
109 test-convert-datesort.t
109 test-convert-datesort.t
110 test-convert-filemap.t
110 test-convert-filemap.t
111 test-convert-hg-sink.t
111 test-convert-hg-sink.t
112 test-convert-hg-source.t
112 test-convert-hg-source.t
113 test-convert-hg-startrev.t
113 test-convert-hg-startrev.t
114 test-convert-splicemap.t
114 test-convert-splicemap.t
115 test-convert-tagsbranch-topology.t
115 test-convert-tagsbranch-topology.t
116 test-copy-move-merge.t
116 test-copy-move-merge.t
117 test-copy.t
117 test-copy.t
118 test-copytrace-heuristics.t
118 test-copytrace-heuristics.t
119 test-custom-filters.t
119 test-custom-filters.t
120 test-debugbuilddag.t
120 test-debugbuilddag.t
121 test-debugbundle.t
121 test-debugbundle.t
122 test-debugcommands.t
122 test-debugcommands.t
123 test-debugextensions.t
123 test-debugextensions.t
124 test-debugindexdot.t
124 test-debugindexdot.t
125 test-debugrename.t
125 test-debugrename.t
126 test-default-push.t
126 test-default-push.t
127 test-diff-antipatience.t
127 test-diff-antipatience.t
128 test-diff-binary-file.t
128 test-diff-binary-file.t
129 test-diff-change.t
129 test-diff-change.t
130 test-diff-color.t
130 test-diff-color.t
131 test-diff-copy-depth.t
131 test-diff-copy-depth.t
132 test-diff-hashes.t
132 test-diff-hashes.t
133 test-diff-ignore-whitespace.t
133 test-diff-ignore-whitespace.t
134 test-diff-indent-heuristic.t
134 test-diff-indent-heuristic.t
135 test-diff-issue2761.t
135 test-diff-issue2761.t
136 test-diff-newlines.t
136 test-diff-newlines.t
137 test-diff-reverse.t
137 test-diff-reverse.t
138 test-diff-subdir.t
138 test-diff-subdir.t
139 test-diff-unified.t
139 test-diff-unified.t
140 test-diff-upgrade.t
140 test-diff-upgrade.t
141 test-diffdir.t
141 test-diffdir.t
142 test-diffstat.t
142 test-diffstat.t
143 test-directaccess.t
143 test-directaccess.t
144 test-dirstate-backup.t
144 test-dirstate-backup.t
145 test-dirstate-nonnormalset.t
145 test-dirstate-nonnormalset.t
146 test-dirstate-race.t
146 test-dirstate-race.t
147 test-dirstate.t
147 test-dirstate.t
148 test-dispatch.py
148 test-dispatch.py
149 test-doctest.py
149 test-doctest.py
150 test-double-merge.t
150 test-double-merge.t
151 test-drawdag.t
151 test-drawdag.t
152 test-duplicateoptions.py
152 test-duplicateoptions.py
153 test-editor-filename.t
153 test-editor-filename.t
154 test-empty-dir.t
154 test-empty-dir.t
155 test-empty-file.t
155 test-empty-file.t
156 test-empty-group.t
156 test-empty-group.t
157 test-empty.t
157 test-empty.t
158 test-encode.t
158 test-encode.t
159 test-encoding-func.py
159 test-encoding-func.py
160 test-encoding-textwrap.t
160 test-encoding-textwrap.t
161 test-encoding.t
161 test-encoding.t
162 test-eol-add.t
162 test-eol-add.t
163 test-eol-clone.t
163 test-eol-clone.t
164 test-eol-hook.t
164 test-eol-hook.t
165 test-eol-patch.t
165 test-eol-patch.t
166 test-eol-tag.t
166 test-eol-tag.t
167 test-eol-update.t
167 test-eol-update.t
168 test-eol.t
168 test-eol.t
169 test-eolfilename.t
169 test-eolfilename.t
170 test-excessive-merge.t
170 test-excessive-merge.t
171 test-exchange-obsmarkers-case-A1.t
171 test-exchange-obsmarkers-case-A1.t
172 test-exchange-obsmarkers-case-A2.t
172 test-exchange-obsmarkers-case-A2.t
173 test-exchange-obsmarkers-case-A3.t
173 test-exchange-obsmarkers-case-A3.t
174 test-exchange-obsmarkers-case-A4.t
174 test-exchange-obsmarkers-case-A4.t
175 test-exchange-obsmarkers-case-A5.t
175 test-exchange-obsmarkers-case-A5.t
176 test-exchange-obsmarkers-case-A6.t
176 test-exchange-obsmarkers-case-A6.t
177 test-exchange-obsmarkers-case-A7.t
177 test-exchange-obsmarkers-case-A7.t
178 test-exchange-obsmarkers-case-B1.t
178 test-exchange-obsmarkers-case-B1.t
179 test-exchange-obsmarkers-case-B2.t
179 test-exchange-obsmarkers-case-B2.t
180 test-exchange-obsmarkers-case-B3.t
180 test-exchange-obsmarkers-case-B3.t
181 test-exchange-obsmarkers-case-B4.t
181 test-exchange-obsmarkers-case-B4.t
182 test-exchange-obsmarkers-case-B5.t
182 test-exchange-obsmarkers-case-B5.t
183 test-exchange-obsmarkers-case-B6.t
183 test-exchange-obsmarkers-case-B6.t
184 test-exchange-obsmarkers-case-B7.t
184 test-exchange-obsmarkers-case-B7.t
185 test-exchange-obsmarkers-case-C1.t
185 test-exchange-obsmarkers-case-C1.t
186 test-exchange-obsmarkers-case-C2.t
186 test-exchange-obsmarkers-case-C2.t
187 test-exchange-obsmarkers-case-C3.t
187 test-exchange-obsmarkers-case-C3.t
188 test-exchange-obsmarkers-case-C4.t
188 test-exchange-obsmarkers-case-C4.t
189 test-exchange-obsmarkers-case-D1.t
189 test-exchange-obsmarkers-case-D1.t
190 test-exchange-obsmarkers-case-D2.t
190 test-exchange-obsmarkers-case-D2.t
191 test-exchange-obsmarkers-case-D3.t
191 test-exchange-obsmarkers-case-D3.t
192 test-exchange-obsmarkers-case-D4.t
192 test-exchange-obsmarkers-case-D4.t
193 test-execute-bit.t
193 test-execute-bit.t
194 test-export.t
194 test-export.t
195 test-extdata.t
195 test-extdata.t
196 test-extdiff.t
196 test-extdiff.t
197 test-extension-timing.t
197 test-extension-timing.t
198 test-extensions-afterloaded.t
198 test-extensions-afterloaded.t
199 test-extensions-wrapfunction.py
199 test-extensions-wrapfunction.py
200 test-extra-filelog-entry.t
200 test-extra-filelog-entry.t
201 test-fetch.t
201 test-fetch.t
202 test-filebranch.t
202 test-filebranch.t
203 test-filecache.py
203 test-filecache.py
204 test-filelog.py
204 test-filelog.py
205 test-fileset-generated.t
205 test-fileset-generated.t
206 test-fileset.t
206 test-fileset.t
207 test-fix-topology.t
207 test-fix-topology.t
208 test-fix.t
208 test-fix.t
209 test-flags.t
209 test-flags.t
210 test-fncache.t
210 test-fncache.t
211 test-generaldelta.t
211 test-generaldelta.t
212 test-getbundle.t
212 test-getbundle.t
213 test-git-export.t
213 test-git-export.t
214 test-globalopts.t
214 test-globalopts.t
215 test-glog-beautifygraph.t
215 test-glog-beautifygraph.t
216 test-glog-topological.t
216 test-glog-topological.t
217 test-glog.t
217 test-glog.t
218 test-gpg.t
218 test-gpg.t
219 test-graft.t
219 test-graft.t
220 test-grep.t
220 test-grep.t
221 test-hardlinks.t
221 test-hardlinks.t
222 test-help-hide.t
222 test-help-hide.t
223 test-help.t
223 test-help.t
224 test-hg-parseurl.py
224 test-hg-parseurl.py
225 test-hghave.t
225 test-hghave.t
226 test-hgignore.t
226 test-hgignore.t
227 test-hgk.t
227 test-hgk.t
228 test-hgrc.t
228 test-hgrc.t
229 test-hgweb-annotate-whitespace.t
229 test-hgweb-annotate-whitespace.t
230 test-hgweb-bundle.t
230 test-hgweb-bundle.t
231 test-hgweb-csp.t
231 test-hgweb-csp.t
232 test-hgweb-descend-empties.t
232 test-hgweb-descend-empties.t
233 test-hgweb-diffs.t
233 test-hgweb-diffs.t
234 test-hgweb-empty.t
234 test-hgweb-empty.t
235 test-hgweb-filelog.t
235 test-hgweb-filelog.t
236 test-hgweb-non-interactive.t
236 test-hgweb-non-interactive.t
237 test-hgweb-raw.t
237 test-hgweb-raw.t
238 test-hgweb-removed.t
238 test-hgweb-removed.t
239 test-hgweb.t
239 test-hgweb.t
240 test-hgwebdir-paths.py
240 test-hgwebdir-paths.py
241 test-hgwebdirsym.t
241 test-hgwebdirsym.t
242 test-histedit-arguments.t
242 test-histedit-arguments.t
243 test-histedit-base.t
243 test-histedit-base.t
244 test-histedit-bookmark-motion.t
244 test-histedit-bookmark-motion.t
245 test-histedit-commute.t
245 test-histedit-commute.t
246 test-histedit-drop.t
246 test-histedit-drop.t
247 test-histedit-edit.t
247 test-histedit-edit.t
248 test-histedit-fold-non-commute.t
248 test-histedit-fold-non-commute.t
249 test-histedit-fold.t
249 test-histedit-fold.t
250 test-histedit-no-backup.t
250 test-histedit-no-backup.t
251 test-histedit-no-change.t
251 test-histedit-no-change.t
252 test-histedit-non-commute-abort.t
252 test-histedit-non-commute-abort.t
253 test-histedit-non-commute.t
253 test-histedit-non-commute.t
254 test-histedit-obsolete.t
254 test-histedit-obsolete.t
255 test-histedit-outgoing.t
255 test-histedit-outgoing.t
256 test-histedit-templates.t
256 test-histedit-templates.t
257 test-http-branchmap.t
257 test-http-branchmap.t
258 test-http-bundle1.t
258 test-http-bundle1.t
259 test-http-clone-r.t
259 test-http-clone-r.t
260 test-http-permissions.t
260 test-http-permissions.t
261 test-http.t
261 test-http.t
262 test-hybridencode.py
262 test-hybridencode.py
263 test-i18n.t
263 test-i18n.t
264 test-identify.t
264 test-identify.t
265 test-impexp-branch.t
265 test-impexp-branch.t
266 test-import-bypass.t
266 test-import-bypass.t
267 test-import-context.t
267 test-import-context.t
268 test-import-eol.t
268 test-import-eol.t
269 test-import-merge.t
269 test-import-merge.t
270 test-import-unknown.t
270 test-import-unknown.t
271 test-import.t
271 test-import.t
272 test-imports-checker.t
272 test-imports-checker.t
273 test-incoming-outgoing.t
273 test-incoming-outgoing.t
274 test-infinitepush-bundlestore.t
274 test-infinitepush-bundlestore.t
275 test-infinitepush-ci.t
275 test-infinitepush-ci.t
276 test-infinitepush.t
276 test-infinitepush.t
277 test-inherit-mode.t
277 test-inherit-mode.t
278 test-init.t
278 test-init.t
279 test-issue1089.t
279 test-issue1089.t
280 test-issue1102.t
280 test-issue1102.t
281 test-issue1175.t
281 test-issue1175.t
282 test-issue1306.t
282 test-issue1306.t
283 test-issue1438.t
283 test-issue1438.t
284 test-issue1502.t
284 test-issue1502.t
285 test-issue1802.t
285 test-issue1802.t
286 test-issue1877.t
286 test-issue1877.t
287 test-issue1993.t
287 test-issue1993.t
288 test-issue2137.t
288 test-issue2137.t
289 test-issue3084.t
289 test-issue3084.t
290 test-issue4074.t
290 test-issue4074.t
291 test-issue522.t
291 test-issue522.t
292 test-issue586.t
292 test-issue586.t
293 test-issue5979.t
293 test-issue5979.t
294 test-issue612.t
294 test-issue612.t
295 test-issue619.t
295 test-issue619.t
296 test-issue660.t
296 test-issue660.t
297 test-issue672.t
297 test-issue672.t
298 test-issue842.t
298 test-issue842.t
299 test-journal-exists.t
299 test-journal-exists.t
300 test-journal-share.t
300 test-journal-share.t
301 test-journal.t
301 test-journal.t
302 test-keyword.t
302 test-keyword.t
303 test-known.t
303 test-known.t
304 test-largefiles-cache.t
304 test-largefiles-cache.t
305 test-largefiles-misc.t
305 test-largefiles-misc.t
306 test-largefiles-small-disk.t
306 test-largefiles-small-disk.t
307 test-largefiles-update.t
307 test-largefiles-update.t
308 test-largefiles.t
308 test-largefiles.t
309 test-lfconvert.t
309 test-lfconvert.t
310 test-lfs-bundle.t
310 test-lfs-bundle.t
311 test-lfs-largefiles.t
311 test-lfs-largefiles.t
312 test-lfs-pointer.py
312 test-lfs-pointer.py
313 test-lfs.t
313 test-lfs.t
314 test-linelog.py
314 test-linelog.py
315 test-linerange.py
315 test-linerange.py
316 test-locate.t
316 test-locate.t
317 test-lock-badness.t
317 test-lock-badness.t
318 test-log-exthook.t
318 test-log-exthook.t
319 test-log-linerange.t
319 test-log-linerange.t
320 test-log.t
320 test-log.t
321 test-logexchange.t
321 test-logexchange.t
322 test-logtoprocess.t
322 test-logtoprocess.t
323 test-lrucachedict.py
323 test-lrucachedict.py
324 test-mactext.t
324 test-mactext.t
325 test-mailmap.t
325 test-mailmap.t
326 test-manifest-merging.t
326 test-manifest-merging.t
327 test-manifest.py
327 test-manifest.py
328 test-manifest.t
328 test-manifest.t
329 test-match.py
329 test-match.py
330 test-mdiff.py
330 test-mdiff.py
331 test-merge-changedelete.t
331 test-merge-changedelete.t
332 test-merge-closedheads.t
332 test-merge-closedheads.t
333 test-merge-commit.t
333 test-merge-commit.t
334 test-merge-criss-cross.t
334 test-merge-criss-cross.t
335 test-merge-default.t
335 test-merge-default.t
336 test-merge-force.t
336 test-merge-force.t
337 test-merge-halt.t
337 test-merge-halt.t
338 test-merge-internal-tools-pattern.t
338 test-merge-internal-tools-pattern.t
339 test-merge-local.t
339 test-merge-local.t
340 test-merge-no-file-change.t
340 test-merge-no-file-change.t
341 test-merge-remove.t
341 test-merge-remove.t
342 test-merge-revert.t
342 test-merge-revert.t
343 test-merge-revert2.t
343 test-merge-revert2.t
344 test-merge-subrepos.t
344 test-merge-subrepos.t
345 test-merge-symlinks.t
345 test-merge-symlinks.t
346 test-merge-tools.t
346 test-merge-tools.t
347 test-merge-types.t
347 test-merge-types.t
348 test-merge1.t
348 test-merge1.t
349 test-merge10.t
349 test-merge10.t
350 test-merge2.t
350 test-merge2.t
351 test-merge4.t
351 test-merge4.t
352 test-merge5.t
352 test-merge5.t
353 test-merge6.t
353 test-merge6.t
354 test-merge7.t
354 test-merge7.t
355 test-merge8.t
355 test-merge8.t
356 test-merge9.t
356 test-merge9.t
357 test-minifileset.py
357 test-minifileset.py
358 test-minirst.py
358 test-minirst.py
359 test-mq-git.t
359 test-mq-git.t
360 test-mq-guards.t
360 test-mq-guards.t
361 test-mq-header-date.t
361 test-mq-header-date.t
362 test-mq-header-from.t
362 test-mq-header-from.t
363 test-mq-merge.t
363 test-mq-merge.t
364 test-mq-pull-from-bundle.t
364 test-mq-pull-from-bundle.t
365 test-mq-qclone-http.t
365 test-mq-qclone-http.t
366 test-mq-qdelete.t
366 test-mq-qdelete.t
367 test-mq-qdiff.t
367 test-mq-qdiff.t
368 test-mq-qfold.t
368 test-mq-qfold.t
369 test-mq-qgoto.t
369 test-mq-qgoto.t
370 test-mq-qimport-fail-cleanup.t
370 test-mq-qimport-fail-cleanup.t
371 test-mq-qnew.t
371 test-mq-qnew.t
372 test-mq-qpush-exact.t
372 test-mq-qpush-exact.t
373 test-mq-qpush-fail.t
373 test-mq-qpush-fail.t
374 test-mq-qqueue.t
374 test-mq-qqueue.t
375 test-mq-qrefresh-interactive.t
375 test-mq-qrefresh-interactive.t
376 test-mq-qrefresh-replace-log-message.t
376 test-mq-qrefresh-replace-log-message.t
377 test-mq-qrefresh.t
377 test-mq-qrefresh.t
378 test-mq-qrename.t
378 test-mq-qrename.t
379 test-mq-qsave.t
379 test-mq-qsave.t
380 test-mq-safety.t
380 test-mq-safety.t
381 test-mq-subrepo.t
381 test-mq-subrepo.t
382 test-mq-symlinks.t
382 test-mq-symlinks.t
383 test-mq.t
383 test-mq.t
384 test-mv-cp-st-diff.t
384 test-mv-cp-st-diff.t
385 test-narrow-acl.t
385 test-narrow-acl.t
386 test-narrow-archive.t
386 test-narrow-archive.t
387 test-narrow-clone-no-ellipsis.t
387 test-narrow-clone-no-ellipsis.t
388 test-narrow-clone-non-narrow-server.t
388 test-narrow-clone-non-narrow-server.t
389 test-narrow-clone-nonlinear.t
389 test-narrow-clone-nonlinear.t
390 test-narrow-clone-stream.t
390 test-narrow-clone-stream.t
391 test-narrow-clone.t
391 test-narrow-clone.t
392 test-narrow-commit.t
392 test-narrow-commit.t
393 test-narrow-copies.t
393 test-narrow-copies.t
394 test-narrow-debugcommands.t
394 test-narrow-debugcommands.t
395 test-narrow-debugrebuilddirstate.t
395 test-narrow-debugrebuilddirstate.t
396 test-narrow-exchange-merges.t
396 test-narrow-exchange-merges.t
397 test-narrow-exchange.t
397 test-narrow-exchange.t
398 test-narrow-expanddirstate.t
398 test-narrow-expanddirstate.t
399 test-narrow-merge.t
399 test-narrow-merge.t
400 test-narrow-patch.t
400 test-narrow-patch.t
401 test-narrow-patterns.t
401 test-narrow-patterns.t
402 test-narrow-pull.t
402 test-narrow-pull.t
403 test-narrow-rebase.t
403 test-narrow-rebase.t
404 test-narrow-shallow-merges.t
404 test-narrow-shallow-merges.t
405 test-narrow-shallow.t
405 test-narrow-shallow.t
406 test-narrow-strip.t
406 test-narrow-strip.t
407 test-narrow-trackedcmd.t
407 test-narrow-trackedcmd.t
408 test-narrow-update.t
408 test-narrow-update.t
409 test-narrow-widen-no-ellipsis.t
409 test-narrow-widen-no-ellipsis.t
410 test-narrow-widen.t
410 test-narrow-widen.t
411 test-narrow.t
411 test-narrow.t
412 test-nested-repo.t
412 test-nested-repo.t
413 test-newbranch.t
413 test-newbranch.t
414 test-newercgi.t
414 test-newercgi.t
415 test-nointerrupt.t
415 test-nointerrupt.t
416 test-obshistory.t
416 test-obshistory.t
417 test-obsmarker-template.t
417 test-obsmarker-template.t
418 test-obsmarkers-effectflag.t
418 test-obsmarkers-effectflag.t
419 test-obsolete-bounds-checking.t
419 test-obsolete-bounds-checking.t
420 test-obsolete-bundle-strip.t
420 test-obsolete-bundle-strip.t
421 test-obsolete-changeset-exchange.t
421 test-obsolete-changeset-exchange.t
422 test-obsolete-checkheads.t
422 test-obsolete-checkheads.t
423 test-obsolete-distributed.t
423 test-obsolete-distributed.t
424 test-obsolete-divergent.t
424 test-obsolete-divergent.t
425 test-obsolete-tag-cache.t
425 test-obsolete-tag-cache.t
426 test-obsolete.t
426 test-obsolete.t
427 test-origbackup-conflict.t
427 test-origbackup-conflict.t
428 test-pager-legacy.t
428 test-pager-legacy.t
429 test-pager.t
429 test-pager.t
430 test-parents.t
430 test-parents.t
431 test-parse-date.t
431 test-parse-date.t
432 test-parseindex2.py
432 test-parseindex2.py
433 test-patch-offset.t
433 test-patch-offset.t
434 test-patch.t
434 test-patch.t
435 test-patchbomb-bookmark.t
435 test-patchbomb-bookmark.t
436 test-patchbomb-tls.t
436 test-patchbomb-tls.t
437 test-patchbomb.t
437 test-patchbomb.t
438 test-pathconflicts-basic.t
438 test-pathconflicts-basic.t
439 test-pathconflicts-merge.t
439 test-pathconflicts-merge.t
440 test-pathconflicts-update.t
440 test-pathconflicts-update.t
441 test-pathencode.py
441 test-pathencode.py
442 test-pending.t
442 test-pending.t
443 test-permissions.t
443 test-permissions.t
444 test-phases-exchange.t
444 test-phases-exchange.t
445 test-phases.t
445 test-phases.t
446 test-profile.t
446 test-profile.t
447 test-progress.t
447 test-progress.t
448 test-propertycache.py
448 test-propertycache.py
449 test-pull-branch.t
449 test-pull-branch.t
450 test-pull-http.t
450 test-pull-http.t
451 test-pull-permission.t
451 test-pull-permission.t
452 test-pull-pull-corruption.t
452 test-pull-pull-corruption.t
453 test-pull-r.t
453 test-pull-r.t
454 test-pull-update.t
454 test-pull-update.t
455 test-pull.t
455 test-pull.t
456 test-purge.t
456 test-purge.t
457 test-push-cgi.t
457 test-push-cgi.t
458 test-push-checkheads-partial-C1.t
458 test-push-checkheads-partial-C1.t
459 test-push-checkheads-partial-C2.t
459 test-push-checkheads-partial-C2.t
460 test-push-checkheads-partial-C3.t
460 test-push-checkheads-partial-C3.t
461 test-push-checkheads-partial-C4.t
461 test-push-checkheads-partial-C4.t
462 test-push-checkheads-pruned-B1.t
462 test-push-checkheads-pruned-B1.t
463 test-push-checkheads-pruned-B2.t
463 test-push-checkheads-pruned-B2.t
464 test-push-checkheads-pruned-B3.t
464 test-push-checkheads-pruned-B3.t
465 test-push-checkheads-pruned-B4.t
465 test-push-checkheads-pruned-B4.t
466 test-push-checkheads-pruned-B5.t
466 test-push-checkheads-pruned-B5.t
467 test-push-checkheads-pruned-B6.t
467 test-push-checkheads-pruned-B6.t
468 test-push-checkheads-pruned-B7.t
468 test-push-checkheads-pruned-B7.t
469 test-push-checkheads-pruned-B8.t
469 test-push-checkheads-pruned-B8.t
470 test-push-checkheads-superceed-A1.t
470 test-push-checkheads-superceed-A1.t
471 test-push-checkheads-superceed-A2.t
471 test-push-checkheads-superceed-A2.t
472 test-push-checkheads-superceed-A3.t
472 test-push-checkheads-superceed-A3.t
473 test-push-checkheads-superceed-A4.t
473 test-push-checkheads-superceed-A4.t
474 test-push-checkheads-superceed-A5.t
474 test-push-checkheads-superceed-A5.t
475 test-push-checkheads-superceed-A6.t
475 test-push-checkheads-superceed-A6.t
476 test-push-checkheads-superceed-A7.t
476 test-push-checkheads-superceed-A7.t
477 test-push-checkheads-superceed-A8.t
477 test-push-checkheads-superceed-A8.t
478 test-push-checkheads-unpushed-D1.t
478 test-push-checkheads-unpushed-D1.t
479 test-push-checkheads-unpushed-D2.t
479 test-push-checkheads-unpushed-D2.t
480 test-push-checkheads-unpushed-D3.t
480 test-push-checkheads-unpushed-D3.t
481 test-push-checkheads-unpushed-D4.t
481 test-push-checkheads-unpushed-D4.t
482 test-push-checkheads-unpushed-D5.t
482 test-push-checkheads-unpushed-D5.t
483 test-push-checkheads-unpushed-D6.t
483 test-push-checkheads-unpushed-D6.t
484 test-push-checkheads-unpushed-D7.t
484 test-push-checkheads-unpushed-D7.t
485 test-push-http.t
485 test-push-http.t
486 test-push-race.t
486 test-push-warn.t
487 test-push-warn.t
487 test-push.t
488 test-push.t
488 test-pushvars.t
489 test-pushvars.t
489 test-qrecord.t
490 test-qrecord.t
490 test-rebase-abort.t
491 test-rebase-abort.t
491 test-rebase-backup.t
492 test-rebase-backup.t
492 test-rebase-base-flag.t
493 test-rebase-base-flag.t
493 test-rebase-bookmarks.t
494 test-rebase-bookmarks.t
494 test-rebase-brute-force.t
495 test-rebase-brute-force.t
495 test-rebase-cache.t
496 test-rebase-cache.t
496 test-rebase-check-restore.t
497 test-rebase-check-restore.t
497 test-rebase-collapse.t
498 test-rebase-collapse.t
498 test-rebase-conflicts.t
499 test-rebase-conflicts.t
499 test-rebase-dest.t
500 test-rebase-dest.t
500 test-rebase-detach.t
501 test-rebase-detach.t
501 test-rebase-emptycommit.t
502 test-rebase-emptycommit.t
502 test-rebase-inmemory.t
503 test-rebase-inmemory.t
503 test-rebase-interruptions.t
504 test-rebase-interruptions.t
504 test-rebase-issue-noparam-single-rev.t
505 test-rebase-issue-noparam-single-rev.t
505 test-rebase-legacy.t
506 test-rebase-legacy.t
506 test-rebase-mq-skip.t
507 test-rebase-mq-skip.t
507 test-rebase-mq.t
508 test-rebase-mq.t
508 test-rebase-named-branches.t
509 test-rebase-named-branches.t
509 test-rebase-newancestor.t
510 test-rebase-newancestor.t
510 test-rebase-obsolete.t
511 test-rebase-obsolete.t
511 test-rebase-parameters.t
512 test-rebase-parameters.t
512 test-rebase-partial.t
513 test-rebase-partial.t
513 test-rebase-pull.t
514 test-rebase-pull.t
514 test-rebase-rename.t
515 test-rebase-rename.t
515 test-rebase-scenario-global.t
516 test-rebase-scenario-global.t
516 test-rebase-templates.t
517 test-rebase-templates.t
517 test-rebase-transaction.t
518 test-rebase-transaction.t
518 test-rebuildstate.t
519 test-rebuildstate.t
519 test-record.t
520 test-record.t
520 test-releasenotes-formatting.t
521 test-releasenotes-formatting.t
521 test-releasenotes-merging.t
522 test-releasenotes-merging.t
522 test-releasenotes-parsing.t
523 test-releasenotes-parsing.t
523 test-relink.t
524 test-relink.t
524 test-remotefilelog-bad-configs.t
525 test-remotefilelog-bad-configs.t
525 test-remotefilelog-blame.t
526 test-remotefilelog-blame.t
526 test-remotefilelog-clone-tree.t
527 test-remotefilelog-clone-tree.t
527 test-remotefilelog-clone.t
528 test-remotefilelog-clone.t
528 test-remotefilelog-keepset.t
529 test-remotefilelog-keepset.t
529 test-remotefilelog-partial-shallow.t
530 test-remotefilelog-partial-shallow.t
530 test-remotefilelog-prefetch.t
531 test-remotefilelog-prefetch.t
531 test-remotefilelog-share.t
532 test-remotefilelog-share.t
532 test-remotefilelog-tags.t
533 test-remotefilelog-tags.t
533 test-remove.t
534 test-remove.t
534 test-removeemptydirs.t
535 test-removeemptydirs.t
535 test-rename-after-merge.t
536 test-rename-after-merge.t
536 test-rename-dir-merge.t
537 test-rename-dir-merge.t
537 test-rename-merge1.t
538 test-rename-merge1.t
538 test-rename-merge2.t
539 test-rename-merge2.t
539 test-rename.t
540 test-rename.t
540 test-repair-strip.t
541 test-repair-strip.t
541 test-repo-compengines.t
542 test-repo-compengines.t
542 test-requires.t
543 test-requires.t
543 test-resolve.t
544 test-resolve.t
544 test-revert-flags.t
545 test-revert-flags.t
545 test-revert-interactive.t
546 test-revert-interactive.t
546 test-revert-unknown.t
547 test-revert-unknown.t
547 test-revert.t
548 test-revert.t
548 test-revisions.t
549 test-revisions.t
549 test-revlog-ancestry.py
550 test-revlog-ancestry.py
550 test-revlog-group-emptyiter.t
551 test-revlog-group-emptyiter.t
551 test-revlog-mmapindex.t
552 test-revlog-mmapindex.t
552 test-revlog-packentry.t
553 test-revlog-packentry.t
553 test-revlog-raw.py
554 test-revlog-raw.py
554 test-revlog-v2.t
555 test-revlog-v2.t
555 test-revlog.t
556 test-revlog.t
556 test-revset-dirstate-parents.t
557 test-revset-dirstate-parents.t
557 test-revset-legacy-lookup.t
558 test-revset-legacy-lookup.t
558 test-revset-outgoing.t
559 test-revset-outgoing.t
559 test-rollback.t
560 test-rollback.t
560 test-run-tests.py
561 test-run-tests.py
561 test-run-tests.t
562 test-run-tests.t
562 test-schemes.t
563 test-schemes.t
563 test-serve.t
564 test-serve.t
564 test-setdiscovery.t
565 test-setdiscovery.t
565 test-share.t
566 test-share.t
566 test-shelve.t
567 test-shelve.t
567 test-show-stack.t
568 test-show-stack.t
568 test-show-work.t
569 test-show-work.t
569 test-show.t
570 test-show.t
570 test-simple-update.t
571 test-simple-update.t
571 test-simplekeyvaluefile.py
572 test-simplekeyvaluefile.py
572 test-simplemerge.py
573 test-simplemerge.py
573 test-single-head.t
574 test-single-head.t
574 test-sparse-clear.t
575 test-sparse-clear.t
575 test-sparse-clone.t
576 test-sparse-clone.t
576 test-sparse-import.t
577 test-sparse-import.t
577 test-sparse-merges.t
578 test-sparse-merges.t
578 test-sparse-profiles.t
579 test-sparse-profiles.t
579 test-sparse-requirement.t
580 test-sparse-requirement.t
580 test-sparse-verbose-json.t
581 test-sparse-verbose-json.t
581 test-sparse.t
582 test-sparse.t
582 test-split.t
583 test-split.t
583 test-ssh-bundle1.t
584 test-ssh-bundle1.t
584 test-ssh-clone-r.t
585 test-ssh-clone-r.t
585 test-ssh-proto-unbundle.t
586 test-ssh-proto-unbundle.t
586 test-ssh-proto.t
587 test-ssh-proto.t
587 test-ssh-repoerror.t
588 test-ssh-repoerror.t
588 test-ssh.t
589 test-ssh.t
589 test-sshserver.py
590 test-sshserver.py
590 test-stack.t
591 test-stack.t
591 test-status-color.t
592 test-status-color.t
592 test-status-inprocess.py
593 test-status-inprocess.py
593 test-status-rev.t
594 test-status-rev.t
594 test-status-terse.t
595 test-status-terse.t
595 test-status.t
596 test-status.t
596 test-storage.py
597 test-storage.py
597 test-stream-bundle-v2.t
598 test-stream-bundle-v2.t
598 test-strict.t
599 test-strict.t
599 test-strip-cross.t
600 test-strip-cross.t
600 test-strip.t
601 test-strip.t
601 test-subrepo-deep-nested-change.t
602 test-subrepo-deep-nested-change.t
602 test-subrepo-missing.t
603 test-subrepo-missing.t
603 test-subrepo-paths.t
604 test-subrepo-paths.t
604 test-subrepo-recursion.t
605 test-subrepo-recursion.t
605 test-subrepo-relative-path.t
606 test-subrepo-relative-path.t
606 test-subrepo.t
607 test-subrepo.t
607 test-symlink-os-yes-fs-no.py
608 test-symlink-os-yes-fs-no.py
608 test-symlink-placeholder.t
609 test-symlink-placeholder.t
609 test-symlinks.t
610 test-symlinks.t
610 test-tag.t
611 test-tag.t
611 test-tags.t
612 test-tags.t
612 test-template-basic.t
613 test-template-basic.t
613 test-template-functions.t
614 test-template-functions.t
614 test-template-keywords.t
615 test-template-keywords.t
615 test-template-map.t
616 test-template-map.t
616 test-tools.t
617 test-tools.t
617 test-transplant.t
618 test-transplant.t
618 test-treemanifest.t
619 test-treemanifest.t
619 test-ui-color.py
620 test-ui-color.py
620 test-ui-config.py
621 test-ui-config.py
621 test-ui-verbosity.py
622 test-ui-verbosity.py
622 test-unamend.t
623 test-unamend.t
623 test-unbundlehash.t
624 test-unbundlehash.t
624 test-uncommit.t
625 test-uncommit.t
625 test-unified-test.t
626 test-unified-test.t
626 test-unionrepo.t
627 test-unionrepo.t
627 test-unrelated-pull.t
628 test-unrelated-pull.t
628 test-up-local-change.t
629 test-up-local-change.t
629 test-update-branches.t
630 test-update-branches.t
630 test-update-dest.t
631 test-update-dest.t
631 test-update-issue1456.t
632 test-update-issue1456.t
632 test-update-names.t
633 test-update-names.t
633 test-update-reverse.t
634 test-update-reverse.t
634 test-upgrade-repo.t
635 test-upgrade-repo.t
635 test-url-download.t
636 test-url-download.t
636 test-url-rev.t
637 test-url-rev.t
637 test-url.py
638 test-url.py
638 test-username-newline.t
639 test-username-newline.t
639 test-util.py
640 test-util.py
640 test-verify.t
641 test-verify.t
641 test-walk.t
642 test-walk.t
642 test-walkrepo.py
643 test-walkrepo.py
643 test-websub.t
644 test-websub.t
644 test-win32text.t
645 test-win32text.t
645 test-wireproto-clientreactor.py
646 test-wireproto-clientreactor.py
646 test-wireproto-command-branchmap.t
647 test-wireproto-command-branchmap.t
647 test-wireproto-command-changesetdata.t
648 test-wireproto-command-changesetdata.t
648 test-wireproto-command-filedata.t
649 test-wireproto-command-filedata.t
649 test-wireproto-command-filesdata.t
650 test-wireproto-command-filesdata.t
650 test-wireproto-command-heads.t
651 test-wireproto-command-heads.t
651 test-wireproto-command-listkeys.t
652 test-wireproto-command-listkeys.t
652 test-wireproto-command-lookup.t
653 test-wireproto-command-lookup.t
653 test-wireproto-command-manifestdata.t
654 test-wireproto-command-manifestdata.t
654 test-wireproto-command-pushkey.t
655 test-wireproto-command-pushkey.t
655 test-wireproto-command-rawstorefiledata.t
656 test-wireproto-command-rawstorefiledata.t
656 test-wireproto-framing.py
657 test-wireproto-framing.py
657 test-wireproto-serverreactor.py
658 test-wireproto-serverreactor.py
658 test-wireproto.py
659 test-wireproto.py
659 test-wsgirequest.py
660 test-wsgirequest.py
660 test-xdg.t
661 test-xdg.t
@@ -1,1892 +1,1892 b''
1 ============================================================================================
1 ============================================================================================
2 Test cases where there are race condition between two clients pushing to the same repository
2 Test cases where there are race condition between two clients pushing to the same repository
3 ============================================================================================
3 ============================================================================================
4
4
5 This file tests cases where two clients push to a server at the same time. The
5 This file tests cases where two clients push to a server at the same time. The
6 "raced" client is done preparing it push bundle when the "racing" client
6 "raced" client is done preparing it push bundle when the "racing" client
7 perform its push. The "raced" client starts its actual push after the "racing"
7 perform its push. The "raced" client starts its actual push after the "racing"
8 client push is fully complete.
8 client push is fully complete.
9
9
10 A set of extension and shell functions ensures this scheduling.
10 A set of extension and shell functions ensures this scheduling.
11
11
12 $ cat >> delaypush.py << EOF
12 $ cat >> delaypush.py << EOF
13 > """small extension orchestrate push race
13 > """small extension orchestrate push race
14 >
14 >
15 > Client with the extensions will create a file when ready and get stuck until
15 > Client with the extensions will create a file when ready and get stuck until
16 > a file is created."""
16 > a file is created."""
17 >
17 >
18 > import errno
18 > import errno
19 > import os
19 > import os
20 > import time
20 > import time
21 >
21 >
22 > from mercurial import (
22 > from mercurial import (
23 > exchange,
23 > exchange,
24 > extensions,
24 > extensions,
25 > registrar,
25 > registrar,
26 > )
26 > )
27 >
27 >
28 > configtable = {}
28 > configtable = {}
29 > configitem = registrar.configitem(configtable)
29 > configitem = registrar.configitem(configtable)
30 >
30 >
31 > configitem('delaypush', 'ready-path',
31 > configitem(b'delaypush', b'ready-path',
32 > default=None,
32 > default=None,
33 > )
33 > )
34 > configitem('delaypush', 'release-path',
34 > configitem(b'delaypush', b'release-path',
35 > default=None,
35 > default=None,
36 > )
36 > )
37 >
37 >
38 > def delaypush(orig, pushop):
38 > def delaypush(orig, pushop):
39 > # notify we are done preparing
39 > # notify we are done preparing
40 > ui = pushop.repo.ui
40 > ui = pushop.repo.ui
41 > readypath = ui.config('delaypush', 'ready-path')
41 > readypath = ui.config(b'delaypush', b'ready-path')
42 > if readypath is not None:
42 > if readypath is not None:
43 > with open(readypath, 'w') as r:
43 > with open(readypath, 'w') as r:
44 > r.write('foo')
44 > r.write('foo')
45 > ui.status('wrote ready: %s\n' % readypath)
45 > ui.status(b'wrote ready: %s\n' % readypath)
46 > # now wait for the other process to be done
46 > # now wait for the other process to be done
47 > watchpath = ui.config('delaypush', 'release-path')
47 > watchpath = ui.config(b'delaypush', b'release-path')
48 > if watchpath is not None:
48 > if watchpath is not None:
49 > ui.status('waiting on: %s\n' % watchpath)
49 > ui.status(b'waiting on: %s\n' % watchpath)
50 > limit = 100
50 > limit = 100
51 > while 0 < limit and not os.path.exists(watchpath):
51 > while 0 < limit and not os.path.exists(watchpath):
52 > limit -= 1
52 > limit -= 1
53 > time.sleep(0.1)
53 > time.sleep(0.1)
54 > if limit <= 0:
54 > if limit <= 0:
55 > ui.warn('exiting without watchfile: %s' % watchpath)
55 > ui.warn(b'exiting without watchfile: %s' % watchpath)
56 > else:
56 > else:
57 > # delete the file at the end of the push
57 > # delete the file at the end of the push
58 > def delete():
58 > def delete():
59 > try:
59 > try:
60 > os.unlink(watchpath)
60 > os.unlink(watchpath)
61 > except OSError as exc:
61 > except OSError as exc:
62 > if exc.errno != errno.ENOENT:
62 > if exc.errno != errno.ENOENT:
63 > raise
63 > raise
64 > ui.atexit(delete)
64 > ui.atexit(delete)
65 > return orig(pushop)
65 > return orig(pushop)
66 >
66 >
67 > def uisetup(ui):
67 > def uisetup(ui):
68 > extensions.wrapfunction(exchange, '_pushbundle2', delaypush)
68 > extensions.wrapfunction(exchange, b'_pushbundle2', delaypush)
69 > EOF
69 > EOF
70
70
71 $ waiton () {
71 $ waiton () {
72 > # wait for a file to be created (then delete it)
72 > # wait for a file to be created (then delete it)
73 > count=100
73 > count=100
74 > while [ ! -f $1 ] ;
74 > while [ ! -f $1 ] ;
75 > do
75 > do
76 > sleep 0.1;
76 > sleep 0.1;
77 > count=`expr $count - 1`;
77 > count=`expr $count - 1`;
78 > if [ $count -lt 0 ];
78 > if [ $count -lt 0 ];
79 > then
79 > then
80 > break
80 > break
81 > fi;
81 > fi;
82 > done
82 > done
83 > [ -f $1 ] || echo "ready file still missing: $1"
83 > [ -f $1 ] || echo "ready file still missing: $1"
84 > rm -f $1
84 > rm -f $1
85 > }
85 > }
86
86
87 $ release () {
87 $ release () {
88 > # create a file and wait for it be deleted
88 > # create a file and wait for it be deleted
89 > count=100
89 > count=100
90 > touch $1
90 > touch $1
91 > while [ -f $1 ] ;
91 > while [ -f $1 ] ;
92 > do
92 > do
93 > sleep 0.1;
93 > sleep 0.1;
94 > count=`expr $count - 1`;
94 > count=`expr $count - 1`;
95 > if [ $count -lt 0 ];
95 > if [ $count -lt 0 ];
96 > then
96 > then
97 > break
97 > break
98 > fi;
98 > fi;
99 > done
99 > done
100 > [ ! -f $1 ] || echo "delay file still exist: $1"
100 > [ ! -f $1 ] || echo "delay file still exist: $1"
101 > }
101 > }
102
102
103 $ cat >> $HGRCPATH << EOF
103 $ cat >> $HGRCPATH << EOF
104 > [ui]
104 > [ui]
105 > ssh = "$PYTHON" "$TESTDIR/dummyssh"
105 > ssh = "$PYTHON" "$TESTDIR/dummyssh"
106 > # simplify output
106 > # simplify output
107 > logtemplate = {node|short} {desc} ({branch})
107 > logtemplate = {node|short} {desc} ({branch})
108 > [phases]
108 > [phases]
109 > publish = no
109 > publish = no
110 > [experimental]
110 > [experimental]
111 > evolution=true
111 > evolution=true
112 > [alias]
112 > [alias]
113 > graph = log -G --rev 'sort(all(), "topo")'
113 > graph = log -G --rev 'sort(all(), "topo")'
114 > EOF
114 > EOF
115
115
116 We tests multiple cases:
116 We tests multiple cases:
117 * strict: no race detected,
117 * strict: no race detected,
118 * unrelated: race on unrelated heads are allowed.
118 * unrelated: race on unrelated heads are allowed.
119
119
120 #testcases strict unrelated
120 #testcases strict unrelated
121
121
122 #if unrelated
122 #if unrelated
123
123
124 $ cat >> $HGRCPATH << EOF
124 $ cat >> $HGRCPATH << EOF
125 > [server]
125 > [server]
126 > concurrent-push-mode = check-related
126 > concurrent-push-mode = check-related
127 > EOF
127 > EOF
128
128
129 #endif
129 #endif
130
130
131 Setup
131 Setup
132 -----
132 -----
133
133
134 create a repo with one root
134 create a repo with one root
135
135
136 $ hg init server
136 $ hg init server
137 $ cd server
137 $ cd server
138 $ echo root > root
138 $ echo root > root
139 $ hg ci -Am "C-ROOT"
139 $ hg ci -Am "C-ROOT"
140 adding root
140 adding root
141 $ cd ..
141 $ cd ..
142
142
143 clone it in two clients
143 clone it in two clients
144
144
145 $ hg clone ssh://user@dummy/server client-racy
145 $ hg clone ssh://user@dummy/server client-racy
146 requesting all changes
146 requesting all changes
147 adding changesets
147 adding changesets
148 adding manifests
148 adding manifests
149 adding file changes
149 adding file changes
150 added 1 changesets with 1 changes to 1 files
150 added 1 changesets with 1 changes to 1 files
151 new changesets 842e2fac6304 (1 drafts)
151 new changesets 842e2fac6304 (1 drafts)
152 updating to branch default
152 updating to branch default
153 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
153 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
154 $ hg clone ssh://user@dummy/server client-other
154 $ hg clone ssh://user@dummy/server client-other
155 requesting all changes
155 requesting all changes
156 adding changesets
156 adding changesets
157 adding manifests
157 adding manifests
158 adding file changes
158 adding file changes
159 added 1 changesets with 1 changes to 1 files
159 added 1 changesets with 1 changes to 1 files
160 new changesets 842e2fac6304 (1 drafts)
160 new changesets 842e2fac6304 (1 drafts)
161 updating to branch default
161 updating to branch default
162 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
162 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
163
163
164 setup one to allow race on push
164 setup one to allow race on push
165
165
166 $ cat >> client-racy/.hg/hgrc << EOF
166 $ cat >> client-racy/.hg/hgrc << EOF
167 > [extensions]
167 > [extensions]
168 > delaypush = $TESTTMP/delaypush.py
168 > delaypush = $TESTTMP/delaypush.py
169 > [delaypush]
169 > [delaypush]
170 > ready-path = $TESTTMP/readyfile
170 > ready-path = $TESTTMP/readyfile
171 > release-path = $TESTTMP/watchfile
171 > release-path = $TESTTMP/watchfile
172 > EOF
172 > EOF
173
173
174 Simple race, both try to push to the server at the same time
174 Simple race, both try to push to the server at the same time
175 ------------------------------------------------------------
175 ------------------------------------------------------------
176
176
177 Both try to replace the same head
177 Both try to replace the same head
178
178
179 # a
179 # a
180 # | b
180 # | b
181 # |/
181 # |/
182 # *
182 # *
183
183
184 Creating changesets
184 Creating changesets
185
185
186 $ echo b > client-other/a
186 $ echo b > client-other/a
187 $ hg -R client-other/ add client-other/a
187 $ hg -R client-other/ add client-other/a
188 $ hg -R client-other/ commit -m "C-A"
188 $ hg -R client-other/ commit -m "C-A"
189 $ echo b > client-racy/b
189 $ echo b > client-racy/b
190 $ hg -R client-racy/ add client-racy/b
190 $ hg -R client-racy/ add client-racy/b
191 $ hg -R client-racy/ commit -m "C-B"
191 $ hg -R client-racy/ commit -m "C-B"
192
192
193 Pushing
193 Pushing
194
194
195 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
195 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
196
196
197 $ waiton $TESTTMP/readyfile
197 $ waiton $TESTTMP/readyfile
198
198
199 $ hg -R client-other push -r 'tip'
199 $ hg -R client-other push -r 'tip'
200 pushing to ssh://user@dummy/server
200 pushing to ssh://user@dummy/server
201 searching for changes
201 searching for changes
202 remote: adding changesets
202 remote: adding changesets
203 remote: adding manifests
203 remote: adding manifests
204 remote: adding file changes
204 remote: adding file changes
205 remote: added 1 changesets with 1 changes to 1 files
205 remote: added 1 changesets with 1 changes to 1 files
206
206
207 $ release $TESTTMP/watchfile
207 $ release $TESTTMP/watchfile
208
208
209 Check the result of the push
209 Check the result of the push
210
210
211 $ cat ./push-log
211 $ cat ./push-log
212 pushing to ssh://user@dummy/server
212 pushing to ssh://user@dummy/server
213 searching for changes
213 searching for changes
214 wrote ready: $TESTTMP/readyfile
214 wrote ready: $TESTTMP/readyfile
215 waiting on: $TESTTMP/watchfile
215 waiting on: $TESTTMP/watchfile
216 abort: push failed:
216 abort: push failed:
217 'remote repository changed while pushing - please try again'
217 'remote repository changed while pushing - please try again'
218
218
219 $ hg -R server graph
219 $ hg -R server graph
220 o 98217d5a1659 C-A (default)
220 o 98217d5a1659 C-A (default)
221 |
221 |
222 @ 842e2fac6304 C-ROOT (default)
222 @ 842e2fac6304 C-ROOT (default)
223
223
224
224
225 Pushing on two different heads
225 Pushing on two different heads
226 ------------------------------
226 ------------------------------
227
227
228 Both try to replace a different head
228 Both try to replace a different head
229
229
230 # a b
230 # a b
231 # | |
231 # | |
232 # * *
232 # * *
233 # |/
233 # |/
234 # *
234 # *
235
235
236 (resync-all)
236 (resync-all)
237
237
238 $ hg -R ./server pull ./client-racy
238 $ hg -R ./server pull ./client-racy
239 pulling from ./client-racy
239 pulling from ./client-racy
240 searching for changes
240 searching for changes
241 adding changesets
241 adding changesets
242 adding manifests
242 adding manifests
243 adding file changes
243 adding file changes
244 added 1 changesets with 1 changes to 1 files (+1 heads)
244 added 1 changesets with 1 changes to 1 files (+1 heads)
245 new changesets a9149a1428e2 (1 drafts)
245 new changesets a9149a1428e2 (1 drafts)
246 (run 'hg heads' to see heads, 'hg merge' to merge)
246 (run 'hg heads' to see heads, 'hg merge' to merge)
247 $ hg -R ./client-other pull
247 $ hg -R ./client-other pull
248 pulling from ssh://user@dummy/server
248 pulling from ssh://user@dummy/server
249 searching for changes
249 searching for changes
250 adding changesets
250 adding changesets
251 adding manifests
251 adding manifests
252 adding file changes
252 adding file changes
253 added 1 changesets with 1 changes to 1 files (+1 heads)
253 added 1 changesets with 1 changes to 1 files (+1 heads)
254 new changesets a9149a1428e2 (1 drafts)
254 new changesets a9149a1428e2 (1 drafts)
255 (run 'hg heads' to see heads, 'hg merge' to merge)
255 (run 'hg heads' to see heads, 'hg merge' to merge)
256 $ hg -R ./client-racy pull
256 $ hg -R ./client-racy pull
257 pulling from ssh://user@dummy/server
257 pulling from ssh://user@dummy/server
258 searching for changes
258 searching for changes
259 adding changesets
259 adding changesets
260 adding manifests
260 adding manifests
261 adding file changes
261 adding file changes
262 added 1 changesets with 1 changes to 1 files (+1 heads)
262 added 1 changesets with 1 changes to 1 files (+1 heads)
263 new changesets 98217d5a1659 (1 drafts)
263 new changesets 98217d5a1659 (1 drafts)
264 (run 'hg heads' to see heads, 'hg merge' to merge)
264 (run 'hg heads' to see heads, 'hg merge' to merge)
265
265
266 $ hg -R server graph
266 $ hg -R server graph
267 o a9149a1428e2 C-B (default)
267 o a9149a1428e2 C-B (default)
268 |
268 |
269 | o 98217d5a1659 C-A (default)
269 | o 98217d5a1659 C-A (default)
270 |/
270 |/
271 @ 842e2fac6304 C-ROOT (default)
271 @ 842e2fac6304 C-ROOT (default)
272
272
273
273
274 Creating changesets
274 Creating changesets
275
275
276 $ echo aa >> client-other/a
276 $ echo aa >> client-other/a
277 $ hg -R client-other/ commit -m "C-C"
277 $ hg -R client-other/ commit -m "C-C"
278 $ echo bb >> client-racy/b
278 $ echo bb >> client-racy/b
279 $ hg -R client-racy/ commit -m "C-D"
279 $ hg -R client-racy/ commit -m "C-D"
280
280
281 Pushing
281 Pushing
282
282
283 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
283 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
284
284
285 $ waiton $TESTTMP/readyfile
285 $ waiton $TESTTMP/readyfile
286
286
287 $ hg -R client-other push -r 'tip'
287 $ hg -R client-other push -r 'tip'
288 pushing to ssh://user@dummy/server
288 pushing to ssh://user@dummy/server
289 searching for changes
289 searching for changes
290 remote: adding changesets
290 remote: adding changesets
291 remote: adding manifests
291 remote: adding manifests
292 remote: adding file changes
292 remote: adding file changes
293 remote: added 1 changesets with 1 changes to 1 files
293 remote: added 1 changesets with 1 changes to 1 files
294
294
295 $ release $TESTTMP/watchfile
295 $ release $TESTTMP/watchfile
296
296
297 Check the result of the push
297 Check the result of the push
298
298
299 #if strict
299 #if strict
300 $ cat ./push-log
300 $ cat ./push-log
301 pushing to ssh://user@dummy/server
301 pushing to ssh://user@dummy/server
302 searching for changes
302 searching for changes
303 wrote ready: $TESTTMP/readyfile
303 wrote ready: $TESTTMP/readyfile
304 waiting on: $TESTTMP/watchfile
304 waiting on: $TESTTMP/watchfile
305 abort: push failed:
305 abort: push failed:
306 'remote repository changed while pushing - please try again'
306 'remote repository changed while pushing - please try again'
307
307
308 $ hg -R server graph
308 $ hg -R server graph
309 o 51c544a58128 C-C (default)
309 o 51c544a58128 C-C (default)
310 |
310 |
311 o 98217d5a1659 C-A (default)
311 o 98217d5a1659 C-A (default)
312 |
312 |
313 | o a9149a1428e2 C-B (default)
313 | o a9149a1428e2 C-B (default)
314 |/
314 |/
315 @ 842e2fac6304 C-ROOT (default)
315 @ 842e2fac6304 C-ROOT (default)
316
316
317 #endif
317 #endif
318 #if unrelated
318 #if unrelated
319
319
320 (The two heads are unrelated, push should be allowed)
320 (The two heads are unrelated, push should be allowed)
321
321
322 $ cat ./push-log
322 $ cat ./push-log
323 pushing to ssh://user@dummy/server
323 pushing to ssh://user@dummy/server
324 searching for changes
324 searching for changes
325 wrote ready: $TESTTMP/readyfile
325 wrote ready: $TESTTMP/readyfile
326 waiting on: $TESTTMP/watchfile
326 waiting on: $TESTTMP/watchfile
327 remote: adding changesets
327 remote: adding changesets
328 remote: adding manifests
328 remote: adding manifests
329 remote: adding file changes
329 remote: adding file changes
330 remote: added 1 changesets with 1 changes to 1 files
330 remote: added 1 changesets with 1 changes to 1 files
331
331
332 $ hg -R server graph
332 $ hg -R server graph
333 o 59e76faf78bd C-D (default)
333 o 59e76faf78bd C-D (default)
334 |
334 |
335 o a9149a1428e2 C-B (default)
335 o a9149a1428e2 C-B (default)
336 |
336 |
337 | o 51c544a58128 C-C (default)
337 | o 51c544a58128 C-C (default)
338 | |
338 | |
339 | o 98217d5a1659 C-A (default)
339 | o 98217d5a1659 C-A (default)
340 |/
340 |/
341 @ 842e2fac6304 C-ROOT (default)
341 @ 842e2fac6304 C-ROOT (default)
342
342
343 #endif
343 #endif
344
344
345 Pushing while someone creates a new head
345 Pushing while someone creates a new head
346 -----------------------------------------
346 -----------------------------------------
347
347
348 Pushing a new changeset while someone creates a new branch.
348 Pushing a new changeset while someone creates a new branch.
349
349
350 # a (raced)
350 # a (raced)
351 # |
351 # |
352 # * b
352 # * b
353 # |/
353 # |/
354 # *
354 # *
355
355
356 (resync-all)
356 (resync-all)
357
357
358 #if strict
358 #if strict
359
359
360 $ hg -R ./server pull ./client-racy
360 $ hg -R ./server pull ./client-racy
361 pulling from ./client-racy
361 pulling from ./client-racy
362 searching for changes
362 searching for changes
363 adding changesets
363 adding changesets
364 adding manifests
364 adding manifests
365 adding file changes
365 adding file changes
366 added 1 changesets with 1 changes to 1 files
366 added 1 changesets with 1 changes to 1 files
367 new changesets 59e76faf78bd (1 drafts)
367 new changesets 59e76faf78bd (1 drafts)
368 (run 'hg update' to get a working copy)
368 (run 'hg update' to get a working copy)
369
369
370 #endif
370 #endif
371 #if unrelated
371 #if unrelated
372
372
373 $ hg -R ./server pull ./client-racy
373 $ hg -R ./server pull ./client-racy
374 pulling from ./client-racy
374 pulling from ./client-racy
375 searching for changes
375 searching for changes
376 no changes found
376 no changes found
377
377
378 #endif
378 #endif
379
379
380 $ hg -R ./client-other pull
380 $ hg -R ./client-other pull
381 pulling from ssh://user@dummy/server
381 pulling from ssh://user@dummy/server
382 searching for changes
382 searching for changes
383 adding changesets
383 adding changesets
384 adding manifests
384 adding manifests
385 adding file changes
385 adding file changes
386 added 1 changesets with 1 changes to 1 files
386 added 1 changesets with 1 changes to 1 files
387 new changesets 59e76faf78bd (1 drafts)
387 new changesets 59e76faf78bd (1 drafts)
388 (run 'hg update' to get a working copy)
388 (run 'hg update' to get a working copy)
389 $ hg -R ./client-racy pull
389 $ hg -R ./client-racy pull
390 pulling from ssh://user@dummy/server
390 pulling from ssh://user@dummy/server
391 searching for changes
391 searching for changes
392 adding changesets
392 adding changesets
393 adding manifests
393 adding manifests
394 adding file changes
394 adding file changes
395 added 1 changesets with 1 changes to 1 files
395 added 1 changesets with 1 changes to 1 files
396 new changesets 51c544a58128 (1 drafts)
396 new changesets 51c544a58128 (1 drafts)
397 (run 'hg update' to get a working copy)
397 (run 'hg update' to get a working copy)
398
398
399 $ hg -R server graph
399 $ hg -R server graph
400 o 59e76faf78bd C-D (default)
400 o 59e76faf78bd C-D (default)
401 |
401 |
402 o a9149a1428e2 C-B (default)
402 o a9149a1428e2 C-B (default)
403 |
403 |
404 | o 51c544a58128 C-C (default)
404 | o 51c544a58128 C-C (default)
405 | |
405 | |
406 | o 98217d5a1659 C-A (default)
406 | o 98217d5a1659 C-A (default)
407 |/
407 |/
408 @ 842e2fac6304 C-ROOT (default)
408 @ 842e2fac6304 C-ROOT (default)
409
409
410
410
411 Creating changesets
411 Creating changesets
412
412
413 (new head)
413 (new head)
414
414
415 $ hg -R client-other/ up 'desc("C-A")'
415 $ hg -R client-other/ up 'desc("C-A")'
416 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
416 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
417 $ echo aaa >> client-other/a
417 $ echo aaa >> client-other/a
418 $ hg -R client-other/ commit -m "C-E"
418 $ hg -R client-other/ commit -m "C-E"
419 created new head
419 created new head
420
420
421 (children of existing head)
421 (children of existing head)
422
422
423 $ hg -R client-racy/ up 'desc("C-C")'
423 $ hg -R client-racy/ up 'desc("C-C")'
424 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
424 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
425 $ echo bbb >> client-racy/a
425 $ echo bbb >> client-racy/a
426 $ hg -R client-racy/ commit -m "C-F"
426 $ hg -R client-racy/ commit -m "C-F"
427
427
428 Pushing
428 Pushing
429
429
430 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
430 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
431
431
432 $ waiton $TESTTMP/readyfile
432 $ waiton $TESTTMP/readyfile
433
433
434 $ hg -R client-other push -fr 'tip'
434 $ hg -R client-other push -fr 'tip'
435 pushing to ssh://user@dummy/server
435 pushing to ssh://user@dummy/server
436 searching for changes
436 searching for changes
437 remote: adding changesets
437 remote: adding changesets
438 remote: adding manifests
438 remote: adding manifests
439 remote: adding file changes
439 remote: adding file changes
440 remote: added 1 changesets with 1 changes to 1 files (+1 heads)
440 remote: added 1 changesets with 1 changes to 1 files (+1 heads)
441
441
442 $ release $TESTTMP/watchfile
442 $ release $TESTTMP/watchfile
443
443
444 Check the result of the push
444 Check the result of the push
445
445
446 #if strict
446 #if strict
447
447
448 $ cat ./push-log
448 $ cat ./push-log
449 pushing to ssh://user@dummy/server
449 pushing to ssh://user@dummy/server
450 searching for changes
450 searching for changes
451 wrote ready: $TESTTMP/readyfile
451 wrote ready: $TESTTMP/readyfile
452 waiting on: $TESTTMP/watchfile
452 waiting on: $TESTTMP/watchfile
453 abort: push failed:
453 abort: push failed:
454 'remote repository changed while pushing - please try again'
454 'remote repository changed while pushing - please try again'
455
455
456 $ hg -R server graph
456 $ hg -R server graph
457 o d603e2c0cdd7 C-E (default)
457 o d603e2c0cdd7 C-E (default)
458 |
458 |
459 | o 51c544a58128 C-C (default)
459 | o 51c544a58128 C-C (default)
460 |/
460 |/
461 o 98217d5a1659 C-A (default)
461 o 98217d5a1659 C-A (default)
462 |
462 |
463 | o 59e76faf78bd C-D (default)
463 | o 59e76faf78bd C-D (default)
464 | |
464 | |
465 | o a9149a1428e2 C-B (default)
465 | o a9149a1428e2 C-B (default)
466 |/
466 |/
467 @ 842e2fac6304 C-ROOT (default)
467 @ 842e2fac6304 C-ROOT (default)
468
468
469
469
470 #endif
470 #endif
471
471
472 #if unrelated
472 #if unrelated
473
473
474 (The racing new head do not affect existing heads, push should go through)
474 (The racing new head do not affect existing heads, push should go through)
475
475
476 $ cat ./push-log
476 $ cat ./push-log
477 pushing to ssh://user@dummy/server
477 pushing to ssh://user@dummy/server
478 searching for changes
478 searching for changes
479 wrote ready: $TESTTMP/readyfile
479 wrote ready: $TESTTMP/readyfile
480 waiting on: $TESTTMP/watchfile
480 waiting on: $TESTTMP/watchfile
481 remote: adding changesets
481 remote: adding changesets
482 remote: adding manifests
482 remote: adding manifests
483 remote: adding file changes
483 remote: adding file changes
484 remote: added 1 changesets with 1 changes to 1 files
484 remote: added 1 changesets with 1 changes to 1 files
485
485
486 $ hg -R server graph
486 $ hg -R server graph
487 o d9e379a8c432 C-F (default)
487 o d9e379a8c432 C-F (default)
488 |
488 |
489 o 51c544a58128 C-C (default)
489 o 51c544a58128 C-C (default)
490 |
490 |
491 | o d603e2c0cdd7 C-E (default)
491 | o d603e2c0cdd7 C-E (default)
492 |/
492 |/
493 o 98217d5a1659 C-A (default)
493 o 98217d5a1659 C-A (default)
494 |
494 |
495 | o 59e76faf78bd C-D (default)
495 | o 59e76faf78bd C-D (default)
496 | |
496 | |
497 | o a9149a1428e2 C-B (default)
497 | o a9149a1428e2 C-B (default)
498 |/
498 |/
499 @ 842e2fac6304 C-ROOT (default)
499 @ 842e2fac6304 C-ROOT (default)
500
500
501 #endif
501 #endif
502
502
503 Pushing touching different named branch (same topo): new branch raced
503 Pushing touching different named branch (same topo): new branch raced
504 ---------------------------------------------------------------------
504 ---------------------------------------------------------------------
505
505
506 Pushing two children on the same head, one is a different named branch
506 Pushing two children on the same head, one is a different named branch
507
507
508 # a (raced, branch-a)
508 # a (raced, branch-a)
509 # |
509 # |
510 # | b (default branch)
510 # | b (default branch)
511 # |/
511 # |/
512 # *
512 # *
513
513
514 (resync-all)
514 (resync-all)
515
515
516 #if strict
516 #if strict
517
517
518 $ hg -R ./server pull ./client-racy
518 $ hg -R ./server pull ./client-racy
519 pulling from ./client-racy
519 pulling from ./client-racy
520 searching for changes
520 searching for changes
521 adding changesets
521 adding changesets
522 adding manifests
522 adding manifests
523 adding file changes
523 adding file changes
524 added 1 changesets with 1 changes to 1 files
524 added 1 changesets with 1 changes to 1 files
525 new changesets d9e379a8c432 (1 drafts)
525 new changesets d9e379a8c432 (1 drafts)
526 (run 'hg update' to get a working copy)
526 (run 'hg update' to get a working copy)
527
527
528 #endif
528 #endif
529 #if unrelated
529 #if unrelated
530
530
531 $ hg -R ./server pull ./client-racy
531 $ hg -R ./server pull ./client-racy
532 pulling from ./client-racy
532 pulling from ./client-racy
533 searching for changes
533 searching for changes
534 no changes found
534 no changes found
535
535
536 #endif
536 #endif
537
537
538 $ hg -R ./client-other pull
538 $ hg -R ./client-other pull
539 pulling from ssh://user@dummy/server
539 pulling from ssh://user@dummy/server
540 searching for changes
540 searching for changes
541 adding changesets
541 adding changesets
542 adding manifests
542 adding manifests
543 adding file changes
543 adding file changes
544 added 1 changesets with 1 changes to 1 files
544 added 1 changesets with 1 changes to 1 files
545 new changesets d9e379a8c432 (1 drafts)
545 new changesets d9e379a8c432 (1 drafts)
546 (run 'hg update' to get a working copy)
546 (run 'hg update' to get a working copy)
547 $ hg -R ./client-racy pull
547 $ hg -R ./client-racy pull
548 pulling from ssh://user@dummy/server
548 pulling from ssh://user@dummy/server
549 searching for changes
549 searching for changes
550 adding changesets
550 adding changesets
551 adding manifests
551 adding manifests
552 adding file changes
552 adding file changes
553 added 1 changesets with 1 changes to 1 files (+1 heads)
553 added 1 changesets with 1 changes to 1 files (+1 heads)
554 new changesets d603e2c0cdd7 (1 drafts)
554 new changesets d603e2c0cdd7 (1 drafts)
555 (run 'hg heads .' to see heads, 'hg merge' to merge)
555 (run 'hg heads .' to see heads, 'hg merge' to merge)
556
556
557 $ hg -R server graph
557 $ hg -R server graph
558 o d9e379a8c432 C-F (default)
558 o d9e379a8c432 C-F (default)
559 |
559 |
560 o 51c544a58128 C-C (default)
560 o 51c544a58128 C-C (default)
561 |
561 |
562 | o d603e2c0cdd7 C-E (default)
562 | o d603e2c0cdd7 C-E (default)
563 |/
563 |/
564 o 98217d5a1659 C-A (default)
564 o 98217d5a1659 C-A (default)
565 |
565 |
566 | o 59e76faf78bd C-D (default)
566 | o 59e76faf78bd C-D (default)
567 | |
567 | |
568 | o a9149a1428e2 C-B (default)
568 | o a9149a1428e2 C-B (default)
569 |/
569 |/
570 @ 842e2fac6304 C-ROOT (default)
570 @ 842e2fac6304 C-ROOT (default)
571
571
572
572
573 Creating changesets
573 Creating changesets
574
574
575 (update existing head)
575 (update existing head)
576
576
577 $ hg -R client-other/ up 'desc("C-F")'
577 $ hg -R client-other/ up 'desc("C-F")'
578 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
578 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
579 $ echo aaa >> client-other/a
579 $ echo aaa >> client-other/a
580 $ hg -R client-other/ commit -m "C-G"
580 $ hg -R client-other/ commit -m "C-G"
581
581
582 (new named branch from that existing head)
582 (new named branch from that existing head)
583
583
584 $ hg -R client-racy/ up 'desc("C-F")'
584 $ hg -R client-racy/ up 'desc("C-F")'
585 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
585 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
586 $ echo bbb >> client-racy/a
586 $ echo bbb >> client-racy/a
587 $ hg -R client-racy/ branch my-first-test-branch
587 $ hg -R client-racy/ branch my-first-test-branch
588 marked working directory as branch my-first-test-branch
588 marked working directory as branch my-first-test-branch
589 (branches are permanent and global, did you want a bookmark?)
589 (branches are permanent and global, did you want a bookmark?)
590 $ hg -R client-racy/ commit -m "C-H"
590 $ hg -R client-racy/ commit -m "C-H"
591
591
592 Pushing
592 Pushing
593
593
594 $ hg -R client-racy push -r 'tip' --new-branch > ./push-log 2>&1 &
594 $ hg -R client-racy push -r 'tip' --new-branch > ./push-log 2>&1 &
595
595
596 $ waiton $TESTTMP/readyfile
596 $ waiton $TESTTMP/readyfile
597
597
598 $ hg -R client-other push -fr 'tip'
598 $ hg -R client-other push -fr 'tip'
599 pushing to ssh://user@dummy/server
599 pushing to ssh://user@dummy/server
600 searching for changes
600 searching for changes
601 remote: adding changesets
601 remote: adding changesets
602 remote: adding manifests
602 remote: adding manifests
603 remote: adding file changes
603 remote: adding file changes
604 remote: added 1 changesets with 1 changes to 1 files
604 remote: added 1 changesets with 1 changes to 1 files
605
605
606 $ release $TESTTMP/watchfile
606 $ release $TESTTMP/watchfile
607
607
608 Check the result of the push
608 Check the result of the push
609
609
610 #if strict
610 #if strict
611 $ cat ./push-log
611 $ cat ./push-log
612 pushing to ssh://user@dummy/server
612 pushing to ssh://user@dummy/server
613 searching for changes
613 searching for changes
614 wrote ready: $TESTTMP/readyfile
614 wrote ready: $TESTTMP/readyfile
615 waiting on: $TESTTMP/watchfile
615 waiting on: $TESTTMP/watchfile
616 abort: push failed:
616 abort: push failed:
617 'remote repository changed while pushing - please try again'
617 'remote repository changed while pushing - please try again'
618
618
619 $ hg -R server graph
619 $ hg -R server graph
620 o 75d69cba5402 C-G (default)
620 o 75d69cba5402 C-G (default)
621 |
621 |
622 o d9e379a8c432 C-F (default)
622 o d9e379a8c432 C-F (default)
623 |
623 |
624 o 51c544a58128 C-C (default)
624 o 51c544a58128 C-C (default)
625 |
625 |
626 | o d603e2c0cdd7 C-E (default)
626 | o d603e2c0cdd7 C-E (default)
627 |/
627 |/
628 o 98217d5a1659 C-A (default)
628 o 98217d5a1659 C-A (default)
629 |
629 |
630 | o 59e76faf78bd C-D (default)
630 | o 59e76faf78bd C-D (default)
631 | |
631 | |
632 | o a9149a1428e2 C-B (default)
632 | o a9149a1428e2 C-B (default)
633 |/
633 |/
634 @ 842e2fac6304 C-ROOT (default)
634 @ 842e2fac6304 C-ROOT (default)
635
635
636 #endif
636 #endif
637 #if unrelated
637 #if unrelated
638
638
639 (unrelated named branches are unrelated)
639 (unrelated named branches are unrelated)
640
640
641 $ cat ./push-log
641 $ cat ./push-log
642 pushing to ssh://user@dummy/server
642 pushing to ssh://user@dummy/server
643 searching for changes
643 searching for changes
644 wrote ready: $TESTTMP/readyfile
644 wrote ready: $TESTTMP/readyfile
645 waiting on: $TESTTMP/watchfile
645 waiting on: $TESTTMP/watchfile
646 remote: adding changesets
646 remote: adding changesets
647 remote: adding manifests
647 remote: adding manifests
648 remote: adding file changes
648 remote: adding file changes
649 remote: added 1 changesets with 1 changes to 1 files (+1 heads)
649 remote: added 1 changesets with 1 changes to 1 files (+1 heads)
650
650
651 $ hg -R server graph
651 $ hg -R server graph
652 o 833be552cfe6 C-H (my-first-test-branch)
652 o 833be552cfe6 C-H (my-first-test-branch)
653 |
653 |
654 | o 75d69cba5402 C-G (default)
654 | o 75d69cba5402 C-G (default)
655 |/
655 |/
656 o d9e379a8c432 C-F (default)
656 o d9e379a8c432 C-F (default)
657 |
657 |
658 o 51c544a58128 C-C (default)
658 o 51c544a58128 C-C (default)
659 |
659 |
660 | o d603e2c0cdd7 C-E (default)
660 | o d603e2c0cdd7 C-E (default)
661 |/
661 |/
662 o 98217d5a1659 C-A (default)
662 o 98217d5a1659 C-A (default)
663 |
663 |
664 | o 59e76faf78bd C-D (default)
664 | o 59e76faf78bd C-D (default)
665 | |
665 | |
666 | o a9149a1428e2 C-B (default)
666 | o a9149a1428e2 C-B (default)
667 |/
667 |/
668 @ 842e2fac6304 C-ROOT (default)
668 @ 842e2fac6304 C-ROOT (default)
669
669
670 #endif
670 #endif
671
671
672 The racing new head do not affect existing heads, push should go through
672 The racing new head do not affect existing heads, push should go through
673
673
674 pushing touching different named branch (same topo): old branch raced
674 pushing touching different named branch (same topo): old branch raced
675 ---------------------------------------------------------------------
675 ---------------------------------------------------------------------
676
676
677 Pushing two children on the same head, one is a different named branch
677 Pushing two children on the same head, one is a different named branch
678
678
679 # a (raced, default-branch)
679 # a (raced, default-branch)
680 # |
680 # |
681 # | b (new branch)
681 # | b (new branch)
682 # |/
682 # |/
683 # * (default-branch)
683 # * (default-branch)
684
684
685 (resync-all)
685 (resync-all)
686
686
687 #if strict
687 #if strict
688
688
689 $ hg -R ./server pull ./client-racy
689 $ hg -R ./server pull ./client-racy
690 pulling from ./client-racy
690 pulling from ./client-racy
691 searching for changes
691 searching for changes
692 adding changesets
692 adding changesets
693 adding manifests
693 adding manifests
694 adding file changes
694 adding file changes
695 added 1 changesets with 1 changes to 1 files (+1 heads)
695 added 1 changesets with 1 changes to 1 files (+1 heads)
696 new changesets 833be552cfe6 (1 drafts)
696 new changesets 833be552cfe6 (1 drafts)
697 (run 'hg heads .' to see heads, 'hg merge' to merge)
697 (run 'hg heads .' to see heads, 'hg merge' to merge)
698
698
699 #endif
699 #endif
700 #if unrelated
700 #if unrelated
701
701
702 $ hg -R ./server pull ./client-racy
702 $ hg -R ./server pull ./client-racy
703 pulling from ./client-racy
703 pulling from ./client-racy
704 searching for changes
704 searching for changes
705 no changes found
705 no changes found
706
706
707 #endif
707 #endif
708
708
709 $ hg -R ./client-other pull
709 $ hg -R ./client-other pull
710 pulling from ssh://user@dummy/server
710 pulling from ssh://user@dummy/server
711 searching for changes
711 searching for changes
712 adding changesets
712 adding changesets
713 adding manifests
713 adding manifests
714 adding file changes
714 adding file changes
715 added 1 changesets with 1 changes to 1 files (+1 heads)
715 added 1 changesets with 1 changes to 1 files (+1 heads)
716 new changesets 833be552cfe6 (1 drafts)
716 new changesets 833be552cfe6 (1 drafts)
717 (run 'hg heads .' to see heads, 'hg merge' to merge)
717 (run 'hg heads .' to see heads, 'hg merge' to merge)
718 $ hg -R ./client-racy pull
718 $ hg -R ./client-racy pull
719 pulling from ssh://user@dummy/server
719 pulling from ssh://user@dummy/server
720 searching for changes
720 searching for changes
721 adding changesets
721 adding changesets
722 adding manifests
722 adding manifests
723 adding file changes
723 adding file changes
724 added 1 changesets with 1 changes to 1 files (+1 heads)
724 added 1 changesets with 1 changes to 1 files (+1 heads)
725 new changesets 75d69cba5402 (1 drafts)
725 new changesets 75d69cba5402 (1 drafts)
726 (run 'hg heads' to see heads)
726 (run 'hg heads' to see heads)
727
727
728 $ hg -R server graph
728 $ hg -R server graph
729 o 833be552cfe6 C-H (my-first-test-branch)
729 o 833be552cfe6 C-H (my-first-test-branch)
730 |
730 |
731 | o 75d69cba5402 C-G (default)
731 | o 75d69cba5402 C-G (default)
732 |/
732 |/
733 o d9e379a8c432 C-F (default)
733 o d9e379a8c432 C-F (default)
734 |
734 |
735 o 51c544a58128 C-C (default)
735 o 51c544a58128 C-C (default)
736 |
736 |
737 | o d603e2c0cdd7 C-E (default)
737 | o d603e2c0cdd7 C-E (default)
738 |/
738 |/
739 o 98217d5a1659 C-A (default)
739 o 98217d5a1659 C-A (default)
740 |
740 |
741 | o 59e76faf78bd C-D (default)
741 | o 59e76faf78bd C-D (default)
742 | |
742 | |
743 | o a9149a1428e2 C-B (default)
743 | o a9149a1428e2 C-B (default)
744 |/
744 |/
745 @ 842e2fac6304 C-ROOT (default)
745 @ 842e2fac6304 C-ROOT (default)
746
746
747
747
748 Creating changesets
748 Creating changesets
749
749
750 (new named branch from one head)
750 (new named branch from one head)
751
751
752 $ hg -R client-other/ up 'desc("C-G")'
752 $ hg -R client-other/ up 'desc("C-G")'
753 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
753 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
754 $ echo aaa >> client-other/a
754 $ echo aaa >> client-other/a
755 $ hg -R client-other/ branch my-second-test-branch
755 $ hg -R client-other/ branch my-second-test-branch
756 marked working directory as branch my-second-test-branch
756 marked working directory as branch my-second-test-branch
757 $ hg -R client-other/ commit -m "C-I"
757 $ hg -R client-other/ commit -m "C-I"
758
758
759 (children "updating" that same head)
759 (children "updating" that same head)
760
760
761 $ hg -R client-racy/ up 'desc("C-G")'
761 $ hg -R client-racy/ up 'desc("C-G")'
762 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
762 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
763 $ echo bbb >> client-racy/a
763 $ echo bbb >> client-racy/a
764 $ hg -R client-racy/ commit -m "C-J"
764 $ hg -R client-racy/ commit -m "C-J"
765
765
766 Pushing
766 Pushing
767
767
768 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
768 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
769
769
770 $ waiton $TESTTMP/readyfile
770 $ waiton $TESTTMP/readyfile
771
771
772 $ hg -R client-other push -fr 'tip' --new-branch
772 $ hg -R client-other push -fr 'tip' --new-branch
773 pushing to ssh://user@dummy/server
773 pushing to ssh://user@dummy/server
774 searching for changes
774 searching for changes
775 remote: adding changesets
775 remote: adding changesets
776 remote: adding manifests
776 remote: adding manifests
777 remote: adding file changes
777 remote: adding file changes
778 remote: added 1 changesets with 1 changes to 1 files
778 remote: added 1 changesets with 1 changes to 1 files
779
779
780 $ release $TESTTMP/watchfile
780 $ release $TESTTMP/watchfile
781
781
782 Check the result of the push
782 Check the result of the push
783
783
784 #if strict
784 #if strict
785
785
786 $ cat ./push-log
786 $ cat ./push-log
787 pushing to ssh://user@dummy/server
787 pushing to ssh://user@dummy/server
788 searching for changes
788 searching for changes
789 wrote ready: $TESTTMP/readyfile
789 wrote ready: $TESTTMP/readyfile
790 waiting on: $TESTTMP/watchfile
790 waiting on: $TESTTMP/watchfile
791 abort: push failed:
791 abort: push failed:
792 'remote repository changed while pushing - please try again'
792 'remote repository changed while pushing - please try again'
793
793
794 $ hg -R server graph
794 $ hg -R server graph
795 o b35ed749f288 C-I (my-second-test-branch)
795 o b35ed749f288 C-I (my-second-test-branch)
796 |
796 |
797 o 75d69cba5402 C-G (default)
797 o 75d69cba5402 C-G (default)
798 |
798 |
799 | o 833be552cfe6 C-H (my-first-test-branch)
799 | o 833be552cfe6 C-H (my-first-test-branch)
800 |/
800 |/
801 o d9e379a8c432 C-F (default)
801 o d9e379a8c432 C-F (default)
802 |
802 |
803 o 51c544a58128 C-C (default)
803 o 51c544a58128 C-C (default)
804 |
804 |
805 | o d603e2c0cdd7 C-E (default)
805 | o d603e2c0cdd7 C-E (default)
806 |/
806 |/
807 o 98217d5a1659 C-A (default)
807 o 98217d5a1659 C-A (default)
808 |
808 |
809 | o 59e76faf78bd C-D (default)
809 | o 59e76faf78bd C-D (default)
810 | |
810 | |
811 | o a9149a1428e2 C-B (default)
811 | o a9149a1428e2 C-B (default)
812 |/
812 |/
813 @ 842e2fac6304 C-ROOT (default)
813 @ 842e2fac6304 C-ROOT (default)
814
814
815
815
816 #endif
816 #endif
817
817
818 #if unrelated
818 #if unrelated
819
819
820 (unrelated named branches are unrelated)
820 (unrelated named branches are unrelated)
821
821
822 $ cat ./push-log
822 $ cat ./push-log
823 pushing to ssh://user@dummy/server
823 pushing to ssh://user@dummy/server
824 searching for changes
824 searching for changes
825 wrote ready: $TESTTMP/readyfile
825 wrote ready: $TESTTMP/readyfile
826 waiting on: $TESTTMP/watchfile
826 waiting on: $TESTTMP/watchfile
827 remote: adding changesets
827 remote: adding changesets
828 remote: adding manifests
828 remote: adding manifests
829 remote: adding file changes
829 remote: adding file changes
830 remote: added 1 changesets with 1 changes to 1 files (+1 heads)
830 remote: added 1 changesets with 1 changes to 1 files (+1 heads)
831
831
832 $ hg -R server graph
832 $ hg -R server graph
833 o 89420bf00fae C-J (default)
833 o 89420bf00fae C-J (default)
834 |
834 |
835 | o b35ed749f288 C-I (my-second-test-branch)
835 | o b35ed749f288 C-I (my-second-test-branch)
836 |/
836 |/
837 o 75d69cba5402 C-G (default)
837 o 75d69cba5402 C-G (default)
838 |
838 |
839 | o 833be552cfe6 C-H (my-first-test-branch)
839 | o 833be552cfe6 C-H (my-first-test-branch)
840 |/
840 |/
841 o d9e379a8c432 C-F (default)
841 o d9e379a8c432 C-F (default)
842 |
842 |
843 o 51c544a58128 C-C (default)
843 o 51c544a58128 C-C (default)
844 |
844 |
845 | o d603e2c0cdd7 C-E (default)
845 | o d603e2c0cdd7 C-E (default)
846 |/
846 |/
847 o 98217d5a1659 C-A (default)
847 o 98217d5a1659 C-A (default)
848 |
848 |
849 | o 59e76faf78bd C-D (default)
849 | o 59e76faf78bd C-D (default)
850 | |
850 | |
851 | o a9149a1428e2 C-B (default)
851 | o a9149a1428e2 C-B (default)
852 |/
852 |/
853 @ 842e2fac6304 C-ROOT (default)
853 @ 842e2fac6304 C-ROOT (default)
854
854
855
855
856 #endif
856 #endif
857
857
858 pushing racing push touch multiple heads
858 pushing racing push touch multiple heads
859 ----------------------------------------
859 ----------------------------------------
860
860
861 There are multiple heads, but the racing push touch all of them
861 There are multiple heads, but the racing push touch all of them
862
862
863 # a (raced)
863 # a (raced)
864 # | b
864 # | b
865 # |/|
865 # |/|
866 # * *
866 # * *
867 # |/
867 # |/
868 # *
868 # *
869
869
870 (resync-all)
870 (resync-all)
871
871
872 #if strict
872 #if strict
873
873
874 $ hg -R ./server pull ./client-racy
874 $ hg -R ./server pull ./client-racy
875 pulling from ./client-racy
875 pulling from ./client-racy
876 searching for changes
876 searching for changes
877 adding changesets
877 adding changesets
878 adding manifests
878 adding manifests
879 adding file changes
879 adding file changes
880 added 1 changesets with 1 changes to 1 files (+1 heads)
880 added 1 changesets with 1 changes to 1 files (+1 heads)
881 new changesets 89420bf00fae (1 drafts)
881 new changesets 89420bf00fae (1 drafts)
882 (run 'hg heads .' to see heads, 'hg merge' to merge)
882 (run 'hg heads .' to see heads, 'hg merge' to merge)
883
883
884 #endif
884 #endif
885
885
886 #if unrelated
886 #if unrelated
887
887
888 $ hg -R ./server pull ./client-racy
888 $ hg -R ./server pull ./client-racy
889 pulling from ./client-racy
889 pulling from ./client-racy
890 searching for changes
890 searching for changes
891 no changes found
891 no changes found
892
892
893 #endif
893 #endif
894
894
895 $ hg -R ./client-other pull
895 $ hg -R ./client-other pull
896 pulling from ssh://user@dummy/server
896 pulling from ssh://user@dummy/server
897 searching for changes
897 searching for changes
898 adding changesets
898 adding changesets
899 adding manifests
899 adding manifests
900 adding file changes
900 adding file changes
901 added 1 changesets with 1 changes to 1 files (+1 heads)
901 added 1 changesets with 1 changes to 1 files (+1 heads)
902 new changesets 89420bf00fae (1 drafts)
902 new changesets 89420bf00fae (1 drafts)
903 (run 'hg heads' to see heads)
903 (run 'hg heads' to see heads)
904 $ hg -R ./client-racy pull
904 $ hg -R ./client-racy pull
905 pulling from ssh://user@dummy/server
905 pulling from ssh://user@dummy/server
906 searching for changes
906 searching for changes
907 adding changesets
907 adding changesets
908 adding manifests
908 adding manifests
909 adding file changes
909 adding file changes
910 added 1 changesets with 1 changes to 1 files (+1 heads)
910 added 1 changesets with 1 changes to 1 files (+1 heads)
911 new changesets b35ed749f288 (1 drafts)
911 new changesets b35ed749f288 (1 drafts)
912 (run 'hg heads .' to see heads, 'hg merge' to merge)
912 (run 'hg heads .' to see heads, 'hg merge' to merge)
913
913
914 $ hg -R server graph
914 $ hg -R server graph
915 o 89420bf00fae C-J (default)
915 o 89420bf00fae C-J (default)
916 |
916 |
917 | o b35ed749f288 C-I (my-second-test-branch)
917 | o b35ed749f288 C-I (my-second-test-branch)
918 |/
918 |/
919 o 75d69cba5402 C-G (default)
919 o 75d69cba5402 C-G (default)
920 |
920 |
921 | o 833be552cfe6 C-H (my-first-test-branch)
921 | o 833be552cfe6 C-H (my-first-test-branch)
922 |/
922 |/
923 o d9e379a8c432 C-F (default)
923 o d9e379a8c432 C-F (default)
924 |
924 |
925 o 51c544a58128 C-C (default)
925 o 51c544a58128 C-C (default)
926 |
926 |
927 | o d603e2c0cdd7 C-E (default)
927 | o d603e2c0cdd7 C-E (default)
928 |/
928 |/
929 o 98217d5a1659 C-A (default)
929 o 98217d5a1659 C-A (default)
930 |
930 |
931 | o 59e76faf78bd C-D (default)
931 | o 59e76faf78bd C-D (default)
932 | |
932 | |
933 | o a9149a1428e2 C-B (default)
933 | o a9149a1428e2 C-B (default)
934 |/
934 |/
935 @ 842e2fac6304 C-ROOT (default)
935 @ 842e2fac6304 C-ROOT (default)
936
936
937
937
938 Creating changesets
938 Creating changesets
939
939
940 (merges heads)
940 (merges heads)
941
941
942 $ hg -R client-other/ up 'desc("C-E")'
942 $ hg -R client-other/ up 'desc("C-E")'
943 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
943 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
944 $ hg -R client-other/ merge 'desc("C-D")'
944 $ hg -R client-other/ merge 'desc("C-D")'
945 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
945 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
946 (branch merge, don't forget to commit)
946 (branch merge, don't forget to commit)
947 $ hg -R client-other/ commit -m "C-K"
947 $ hg -R client-other/ commit -m "C-K"
948
948
949 (update one head)
949 (update one head)
950
950
951 $ hg -R client-racy/ up 'desc("C-D")'
951 $ hg -R client-racy/ up 'desc("C-D")'
952 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
952 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
953 $ echo bbb >> client-racy/b
953 $ echo bbb >> client-racy/b
954 $ hg -R client-racy/ commit -m "C-L"
954 $ hg -R client-racy/ commit -m "C-L"
955
955
956 Pushing
956 Pushing
957
957
958 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
958 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
959
959
960 $ waiton $TESTTMP/readyfile
960 $ waiton $TESTTMP/readyfile
961
961
962 $ hg -R client-other push -fr 'tip' --new-branch
962 $ hg -R client-other push -fr 'tip' --new-branch
963 pushing to ssh://user@dummy/server
963 pushing to ssh://user@dummy/server
964 searching for changes
964 searching for changes
965 remote: adding changesets
965 remote: adding changesets
966 remote: adding manifests
966 remote: adding manifests
967 remote: adding file changes
967 remote: adding file changes
968 remote: added 1 changesets with 0 changes to 0 files (-1 heads)
968 remote: added 1 changesets with 0 changes to 0 files (-1 heads)
969
969
970 $ release $TESTTMP/watchfile
970 $ release $TESTTMP/watchfile
971
971
972 Check the result of the push
972 Check the result of the push
973
973
974 $ cat ./push-log
974 $ cat ./push-log
975 pushing to ssh://user@dummy/server
975 pushing to ssh://user@dummy/server
976 searching for changes
976 searching for changes
977 wrote ready: $TESTTMP/readyfile
977 wrote ready: $TESTTMP/readyfile
978 waiting on: $TESTTMP/watchfile
978 waiting on: $TESTTMP/watchfile
979 abort: push failed:
979 abort: push failed:
980 'remote repository changed while pushing - please try again'
980 'remote repository changed while pushing - please try again'
981
981
982 $ hg -R server graph
982 $ hg -R server graph
983 o be705100c623 C-K (default)
983 o be705100c623 C-K (default)
984 |\
984 |\
985 | o d603e2c0cdd7 C-E (default)
985 | o d603e2c0cdd7 C-E (default)
986 | |
986 | |
987 o | 59e76faf78bd C-D (default)
987 o | 59e76faf78bd C-D (default)
988 | |
988 | |
989 | | o 89420bf00fae C-J (default)
989 | | o 89420bf00fae C-J (default)
990 | | |
990 | | |
991 | | | o b35ed749f288 C-I (my-second-test-branch)
991 | | | o b35ed749f288 C-I (my-second-test-branch)
992 | | |/
992 | | |/
993 | | o 75d69cba5402 C-G (default)
993 | | o 75d69cba5402 C-G (default)
994 | | |
994 | | |
995 | | | o 833be552cfe6 C-H (my-first-test-branch)
995 | | | o 833be552cfe6 C-H (my-first-test-branch)
996 | | |/
996 | | |/
997 | | o d9e379a8c432 C-F (default)
997 | | o d9e379a8c432 C-F (default)
998 | | |
998 | | |
999 | | o 51c544a58128 C-C (default)
999 | | o 51c544a58128 C-C (default)
1000 | |/
1000 | |/
1001 o | a9149a1428e2 C-B (default)
1001 o | a9149a1428e2 C-B (default)
1002 | |
1002 | |
1003 | o 98217d5a1659 C-A (default)
1003 | o 98217d5a1659 C-A (default)
1004 |/
1004 |/
1005 @ 842e2fac6304 C-ROOT (default)
1005 @ 842e2fac6304 C-ROOT (default)
1006
1006
1007
1007
1008 pushing raced push touch multiple heads
1008 pushing raced push touch multiple heads
1009 ---------------------------------------
1009 ---------------------------------------
1010
1010
1011 There are multiple heads, the raced push touch all of them
1011 There are multiple heads, the raced push touch all of them
1012
1012
1013 # b
1013 # b
1014 # | a (raced)
1014 # | a (raced)
1015 # |/|
1015 # |/|
1016 # * *
1016 # * *
1017 # |/
1017 # |/
1018 # *
1018 # *
1019
1019
1020 (resync-all)
1020 (resync-all)
1021
1021
1022 $ hg -R ./server pull ./client-racy
1022 $ hg -R ./server pull ./client-racy
1023 pulling from ./client-racy
1023 pulling from ./client-racy
1024 searching for changes
1024 searching for changes
1025 adding changesets
1025 adding changesets
1026 adding manifests
1026 adding manifests
1027 adding file changes
1027 adding file changes
1028 added 1 changesets with 1 changes to 1 files (+1 heads)
1028 added 1 changesets with 1 changes to 1 files (+1 heads)
1029 new changesets cac2cead0ff0 (1 drafts)
1029 new changesets cac2cead0ff0 (1 drafts)
1030 (run 'hg heads .' to see heads, 'hg merge' to merge)
1030 (run 'hg heads .' to see heads, 'hg merge' to merge)
1031 $ hg -R ./client-other pull
1031 $ hg -R ./client-other pull
1032 pulling from ssh://user@dummy/server
1032 pulling from ssh://user@dummy/server
1033 searching for changes
1033 searching for changes
1034 adding changesets
1034 adding changesets
1035 adding manifests
1035 adding manifests
1036 adding file changes
1036 adding file changes
1037 added 1 changesets with 1 changes to 1 files (+1 heads)
1037 added 1 changesets with 1 changes to 1 files (+1 heads)
1038 new changesets cac2cead0ff0 (1 drafts)
1038 new changesets cac2cead0ff0 (1 drafts)
1039 (run 'hg heads .' to see heads, 'hg merge' to merge)
1039 (run 'hg heads .' to see heads, 'hg merge' to merge)
1040 $ hg -R ./client-racy pull
1040 $ hg -R ./client-racy pull
1041 pulling from ssh://user@dummy/server
1041 pulling from ssh://user@dummy/server
1042 searching for changes
1042 searching for changes
1043 adding changesets
1043 adding changesets
1044 adding manifests
1044 adding manifests
1045 adding file changes
1045 adding file changes
1046 added 1 changesets with 0 changes to 0 files
1046 added 1 changesets with 0 changes to 0 files
1047 new changesets be705100c623 (1 drafts)
1047 new changesets be705100c623 (1 drafts)
1048 (run 'hg update' to get a working copy)
1048 (run 'hg update' to get a working copy)
1049
1049
1050 $ hg -R server graph
1050 $ hg -R server graph
1051 o cac2cead0ff0 C-L (default)
1051 o cac2cead0ff0 C-L (default)
1052 |
1052 |
1053 | o be705100c623 C-K (default)
1053 | o be705100c623 C-K (default)
1054 |/|
1054 |/|
1055 | o d603e2c0cdd7 C-E (default)
1055 | o d603e2c0cdd7 C-E (default)
1056 | |
1056 | |
1057 o | 59e76faf78bd C-D (default)
1057 o | 59e76faf78bd C-D (default)
1058 | |
1058 | |
1059 | | o 89420bf00fae C-J (default)
1059 | | o 89420bf00fae C-J (default)
1060 | | |
1060 | | |
1061 | | | o b35ed749f288 C-I (my-second-test-branch)
1061 | | | o b35ed749f288 C-I (my-second-test-branch)
1062 | | |/
1062 | | |/
1063 | | o 75d69cba5402 C-G (default)
1063 | | o 75d69cba5402 C-G (default)
1064 | | |
1064 | | |
1065 | | | o 833be552cfe6 C-H (my-first-test-branch)
1065 | | | o 833be552cfe6 C-H (my-first-test-branch)
1066 | | |/
1066 | | |/
1067 | | o d9e379a8c432 C-F (default)
1067 | | o d9e379a8c432 C-F (default)
1068 | | |
1068 | | |
1069 | | o 51c544a58128 C-C (default)
1069 | | o 51c544a58128 C-C (default)
1070 | |/
1070 | |/
1071 o | a9149a1428e2 C-B (default)
1071 o | a9149a1428e2 C-B (default)
1072 | |
1072 | |
1073 | o 98217d5a1659 C-A (default)
1073 | o 98217d5a1659 C-A (default)
1074 |/
1074 |/
1075 @ 842e2fac6304 C-ROOT (default)
1075 @ 842e2fac6304 C-ROOT (default)
1076
1076
1077
1077
1078 Creating changesets
1078 Creating changesets
1079
1079
1080 (update existing head)
1080 (update existing head)
1081
1081
1082 $ echo aaa >> client-other/a
1082 $ echo aaa >> client-other/a
1083 $ hg -R client-other/ commit -m "C-M"
1083 $ hg -R client-other/ commit -m "C-M"
1084
1084
1085 (merge heads)
1085 (merge heads)
1086
1086
1087 $ hg -R client-racy/ merge 'desc("C-K")'
1087 $ hg -R client-racy/ merge 'desc("C-K")'
1088 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1088 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1089 (branch merge, don't forget to commit)
1089 (branch merge, don't forget to commit)
1090 $ hg -R client-racy/ commit -m "C-N"
1090 $ hg -R client-racy/ commit -m "C-N"
1091
1091
1092 Pushing
1092 Pushing
1093
1093
1094 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
1094 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
1095
1095
1096 $ waiton $TESTTMP/readyfile
1096 $ waiton $TESTTMP/readyfile
1097
1097
1098 $ hg -R client-other push -fr 'tip' --new-branch
1098 $ hg -R client-other push -fr 'tip' --new-branch
1099 pushing to ssh://user@dummy/server
1099 pushing to ssh://user@dummy/server
1100 searching for changes
1100 searching for changes
1101 remote: adding changesets
1101 remote: adding changesets
1102 remote: adding manifests
1102 remote: adding manifests
1103 remote: adding file changes
1103 remote: adding file changes
1104 remote: added 1 changesets with 1 changes to 1 files
1104 remote: added 1 changesets with 1 changes to 1 files
1105
1105
1106 $ release $TESTTMP/watchfile
1106 $ release $TESTTMP/watchfile
1107
1107
1108 Check the result of the push
1108 Check the result of the push
1109
1109
1110 $ cat ./push-log
1110 $ cat ./push-log
1111 pushing to ssh://user@dummy/server
1111 pushing to ssh://user@dummy/server
1112 searching for changes
1112 searching for changes
1113 wrote ready: $TESTTMP/readyfile
1113 wrote ready: $TESTTMP/readyfile
1114 waiting on: $TESTTMP/watchfile
1114 waiting on: $TESTTMP/watchfile
1115 abort: push failed:
1115 abort: push failed:
1116 'remote repository changed while pushing - please try again'
1116 'remote repository changed while pushing - please try again'
1117
1117
1118 $ hg -R server graph
1118 $ hg -R server graph
1119 o 6fd3090135df C-M (default)
1119 o 6fd3090135df C-M (default)
1120 |
1120 |
1121 o be705100c623 C-K (default)
1121 o be705100c623 C-K (default)
1122 |\
1122 |\
1123 | o d603e2c0cdd7 C-E (default)
1123 | o d603e2c0cdd7 C-E (default)
1124 | |
1124 | |
1125 +---o cac2cead0ff0 C-L (default)
1125 +---o cac2cead0ff0 C-L (default)
1126 | |
1126 | |
1127 o | 59e76faf78bd C-D (default)
1127 o | 59e76faf78bd C-D (default)
1128 | |
1128 | |
1129 | | o 89420bf00fae C-J (default)
1129 | | o 89420bf00fae C-J (default)
1130 | | |
1130 | | |
1131 | | | o b35ed749f288 C-I (my-second-test-branch)
1131 | | | o b35ed749f288 C-I (my-second-test-branch)
1132 | | |/
1132 | | |/
1133 | | o 75d69cba5402 C-G (default)
1133 | | o 75d69cba5402 C-G (default)
1134 | | |
1134 | | |
1135 | | | o 833be552cfe6 C-H (my-first-test-branch)
1135 | | | o 833be552cfe6 C-H (my-first-test-branch)
1136 | | |/
1136 | | |/
1137 | | o d9e379a8c432 C-F (default)
1137 | | o d9e379a8c432 C-F (default)
1138 | | |
1138 | | |
1139 | | o 51c544a58128 C-C (default)
1139 | | o 51c544a58128 C-C (default)
1140 | |/
1140 | |/
1141 o | a9149a1428e2 C-B (default)
1141 o | a9149a1428e2 C-B (default)
1142 | |
1142 | |
1143 | o 98217d5a1659 C-A (default)
1143 | o 98217d5a1659 C-A (default)
1144 |/
1144 |/
1145 @ 842e2fac6304 C-ROOT (default)
1145 @ 842e2fac6304 C-ROOT (default)
1146
1146
1147
1147
1148 racing commit push a new head behind another named branch
1148 racing commit push a new head behind another named branch
1149 ---------------------------------------------------------
1149 ---------------------------------------------------------
1150
1150
1151 non-continuous branch are valid case, we tests for them.
1151 non-continuous branch are valid case, we tests for them.
1152
1152
1153 # b (branch default)
1153 # b (branch default)
1154 # |
1154 # |
1155 # o (branch foo)
1155 # o (branch foo)
1156 # |
1156 # |
1157 # | a (raced, branch default)
1157 # | a (raced, branch default)
1158 # |/
1158 # |/
1159 # * (branch foo)
1159 # * (branch foo)
1160 # |
1160 # |
1161 # * (branch default)
1161 # * (branch default)
1162
1162
1163 (resync-all + other branch)
1163 (resync-all + other branch)
1164
1164
1165 $ hg -R ./server pull ./client-racy
1165 $ hg -R ./server pull ./client-racy
1166 pulling from ./client-racy
1166 pulling from ./client-racy
1167 searching for changes
1167 searching for changes
1168 adding changesets
1168 adding changesets
1169 adding manifests
1169 adding manifests
1170 adding file changes
1170 adding file changes
1171 added 1 changesets with 0 changes to 0 files
1171 added 1 changesets with 0 changes to 0 files
1172 new changesets 866a66e18630 (1 drafts)
1172 new changesets 866a66e18630 (1 drafts)
1173 (run 'hg update' to get a working copy)
1173 (run 'hg update' to get a working copy)
1174
1174
1175 (creates named branch on head)
1175 (creates named branch on head)
1176
1176
1177 $ hg -R ./server/ up 'desc("C-N")'
1177 $ hg -R ./server/ up 'desc("C-N")'
1178 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1178 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1179 $ hg -R ./server/ branch other
1179 $ hg -R ./server/ branch other
1180 marked working directory as branch other
1180 marked working directory as branch other
1181 $ hg -R ./server/ ci -m "C-Z"
1181 $ hg -R ./server/ ci -m "C-Z"
1182 $ hg -R ./server/ up null
1182 $ hg -R ./server/ up null
1183 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
1183 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
1184
1184
1185 (sync client)
1185 (sync client)
1186
1186
1187 $ hg -R ./client-other pull
1187 $ hg -R ./client-other pull
1188 pulling from ssh://user@dummy/server
1188 pulling from ssh://user@dummy/server
1189 searching for changes
1189 searching for changes
1190 adding changesets
1190 adding changesets
1191 adding manifests
1191 adding manifests
1192 adding file changes
1192 adding file changes
1193 added 2 changesets with 0 changes to 0 files
1193 added 2 changesets with 0 changes to 0 files
1194 new changesets 866a66e18630:55a6f1c01b48 (2 drafts)
1194 new changesets 866a66e18630:55a6f1c01b48 (2 drafts)
1195 (run 'hg update' to get a working copy)
1195 (run 'hg update' to get a working copy)
1196 $ hg -R ./client-racy pull
1196 $ hg -R ./client-racy pull
1197 pulling from ssh://user@dummy/server
1197 pulling from ssh://user@dummy/server
1198 searching for changes
1198 searching for changes
1199 adding changesets
1199 adding changesets
1200 adding manifests
1200 adding manifests
1201 adding file changes
1201 adding file changes
1202 added 2 changesets with 1 changes to 1 files (+1 heads)
1202 added 2 changesets with 1 changes to 1 files (+1 heads)
1203 new changesets 6fd3090135df:55a6f1c01b48 (2 drafts)
1203 new changesets 6fd3090135df:55a6f1c01b48 (2 drafts)
1204 (run 'hg heads .' to see heads, 'hg merge' to merge)
1204 (run 'hg heads .' to see heads, 'hg merge' to merge)
1205
1205
1206 $ hg -R server graph
1206 $ hg -R server graph
1207 o 55a6f1c01b48 C-Z (other)
1207 o 55a6f1c01b48 C-Z (other)
1208 |
1208 |
1209 o 866a66e18630 C-N (default)
1209 o 866a66e18630 C-N (default)
1210 |\
1210 |\
1211 +---o 6fd3090135df C-M (default)
1211 +---o 6fd3090135df C-M (default)
1212 | |
1212 | |
1213 | o cac2cead0ff0 C-L (default)
1213 | o cac2cead0ff0 C-L (default)
1214 | |
1214 | |
1215 o | be705100c623 C-K (default)
1215 o | be705100c623 C-K (default)
1216 |\|
1216 |\|
1217 o | d603e2c0cdd7 C-E (default)
1217 o | d603e2c0cdd7 C-E (default)
1218 | |
1218 | |
1219 | o 59e76faf78bd C-D (default)
1219 | o 59e76faf78bd C-D (default)
1220 | |
1220 | |
1221 | | o 89420bf00fae C-J (default)
1221 | | o 89420bf00fae C-J (default)
1222 | | |
1222 | | |
1223 | | | o b35ed749f288 C-I (my-second-test-branch)
1223 | | | o b35ed749f288 C-I (my-second-test-branch)
1224 | | |/
1224 | | |/
1225 | | o 75d69cba5402 C-G (default)
1225 | | o 75d69cba5402 C-G (default)
1226 | | |
1226 | | |
1227 | | | o 833be552cfe6 C-H (my-first-test-branch)
1227 | | | o 833be552cfe6 C-H (my-first-test-branch)
1228 | | |/
1228 | | |/
1229 | | o d9e379a8c432 C-F (default)
1229 | | o d9e379a8c432 C-F (default)
1230 | | |
1230 | | |
1231 +---o 51c544a58128 C-C (default)
1231 +---o 51c544a58128 C-C (default)
1232 | |
1232 | |
1233 | o a9149a1428e2 C-B (default)
1233 | o a9149a1428e2 C-B (default)
1234 | |
1234 | |
1235 o | 98217d5a1659 C-A (default)
1235 o | 98217d5a1659 C-A (default)
1236 |/
1236 |/
1237 o 842e2fac6304 C-ROOT (default)
1237 o 842e2fac6304 C-ROOT (default)
1238
1238
1239
1239
1240 Creating changesets
1240 Creating changesets
1241
1241
1242 (update default head through another named branch one)
1242 (update default head through another named branch one)
1243
1243
1244 $ hg -R client-other/ up 'desc("C-Z")'
1244 $ hg -R client-other/ up 'desc("C-Z")'
1245 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1245 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1246 $ echo aaa >> client-other/a
1246 $ echo aaa >> client-other/a
1247 $ hg -R client-other/ commit -m "C-O"
1247 $ hg -R client-other/ commit -m "C-O"
1248 $ echo aaa >> client-other/a
1248 $ echo aaa >> client-other/a
1249 $ hg -R client-other/ branch --force default
1249 $ hg -R client-other/ branch --force default
1250 marked working directory as branch default
1250 marked working directory as branch default
1251 $ hg -R client-other/ commit -m "C-P"
1251 $ hg -R client-other/ commit -m "C-P"
1252 created new head
1252 created new head
1253
1253
1254 (update default head)
1254 (update default head)
1255
1255
1256 $ hg -R client-racy/ up 'desc("C-Z")'
1256 $ hg -R client-racy/ up 'desc("C-Z")'
1257 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1257 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1258 $ echo bbb >> client-other/a
1258 $ echo bbb >> client-other/a
1259 $ hg -R client-racy/ branch --force default
1259 $ hg -R client-racy/ branch --force default
1260 marked working directory as branch default
1260 marked working directory as branch default
1261 $ hg -R client-racy/ commit -m "C-Q"
1261 $ hg -R client-racy/ commit -m "C-Q"
1262 created new head
1262 created new head
1263
1263
1264 Pushing
1264 Pushing
1265
1265
1266 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
1266 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
1267
1267
1268 $ waiton $TESTTMP/readyfile
1268 $ waiton $TESTTMP/readyfile
1269
1269
1270 $ hg -R client-other push -fr 'tip' --new-branch
1270 $ hg -R client-other push -fr 'tip' --new-branch
1271 pushing to ssh://user@dummy/server
1271 pushing to ssh://user@dummy/server
1272 searching for changes
1272 searching for changes
1273 remote: adding changesets
1273 remote: adding changesets
1274 remote: adding manifests
1274 remote: adding manifests
1275 remote: adding file changes
1275 remote: adding file changes
1276 remote: added 2 changesets with 1 changes to 1 files
1276 remote: added 2 changesets with 1 changes to 1 files
1277
1277
1278 $ release $TESTTMP/watchfile
1278 $ release $TESTTMP/watchfile
1279
1279
1280 Check the result of the push
1280 Check the result of the push
1281
1281
1282 $ cat ./push-log
1282 $ cat ./push-log
1283 pushing to ssh://user@dummy/server
1283 pushing to ssh://user@dummy/server
1284 searching for changes
1284 searching for changes
1285 wrote ready: $TESTTMP/readyfile
1285 wrote ready: $TESTTMP/readyfile
1286 waiting on: $TESTTMP/watchfile
1286 waiting on: $TESTTMP/watchfile
1287 abort: push failed:
1287 abort: push failed:
1288 'remote repository changed while pushing - please try again'
1288 'remote repository changed while pushing - please try again'
1289
1289
1290 $ hg -R server graph
1290 $ hg -R server graph
1291 o 1b58ee3f79e5 C-P (default)
1291 o 1b58ee3f79e5 C-P (default)
1292 |
1292 |
1293 o d0a85b2252a9 C-O (other)
1293 o d0a85b2252a9 C-O (other)
1294 |
1294 |
1295 o 55a6f1c01b48 C-Z (other)
1295 o 55a6f1c01b48 C-Z (other)
1296 |
1296 |
1297 o 866a66e18630 C-N (default)
1297 o 866a66e18630 C-N (default)
1298 |\
1298 |\
1299 +---o 6fd3090135df C-M (default)
1299 +---o 6fd3090135df C-M (default)
1300 | |
1300 | |
1301 | o cac2cead0ff0 C-L (default)
1301 | o cac2cead0ff0 C-L (default)
1302 | |
1302 | |
1303 o | be705100c623 C-K (default)
1303 o | be705100c623 C-K (default)
1304 |\|
1304 |\|
1305 o | d603e2c0cdd7 C-E (default)
1305 o | d603e2c0cdd7 C-E (default)
1306 | |
1306 | |
1307 | o 59e76faf78bd C-D (default)
1307 | o 59e76faf78bd C-D (default)
1308 | |
1308 | |
1309 | | o 89420bf00fae C-J (default)
1309 | | o 89420bf00fae C-J (default)
1310 | | |
1310 | | |
1311 | | | o b35ed749f288 C-I (my-second-test-branch)
1311 | | | o b35ed749f288 C-I (my-second-test-branch)
1312 | | |/
1312 | | |/
1313 | | o 75d69cba5402 C-G (default)
1313 | | o 75d69cba5402 C-G (default)
1314 | | |
1314 | | |
1315 | | | o 833be552cfe6 C-H (my-first-test-branch)
1315 | | | o 833be552cfe6 C-H (my-first-test-branch)
1316 | | |/
1316 | | |/
1317 | | o d9e379a8c432 C-F (default)
1317 | | o d9e379a8c432 C-F (default)
1318 | | |
1318 | | |
1319 +---o 51c544a58128 C-C (default)
1319 +---o 51c544a58128 C-C (default)
1320 | |
1320 | |
1321 | o a9149a1428e2 C-B (default)
1321 | o a9149a1428e2 C-B (default)
1322 | |
1322 | |
1323 o | 98217d5a1659 C-A (default)
1323 o | 98217d5a1659 C-A (default)
1324 |/
1324 |/
1325 o 842e2fac6304 C-ROOT (default)
1325 o 842e2fac6304 C-ROOT (default)
1326
1326
1327
1327
1328 raced commit push a new head behind another named branch
1328 raced commit push a new head behind another named branch
1329 ---------------------------------------------------------
1329 ---------------------------------------------------------
1330
1330
1331 non-continuous branch are valid case, we tests for them.
1331 non-continuous branch are valid case, we tests for them.
1332
1332
1333 # b (raced branch default)
1333 # b (raced branch default)
1334 # |
1334 # |
1335 # o (branch foo)
1335 # o (branch foo)
1336 # |
1336 # |
1337 # | a (branch default)
1337 # | a (branch default)
1338 # |/
1338 # |/
1339 # * (branch foo)
1339 # * (branch foo)
1340 # |
1340 # |
1341 # * (branch default)
1341 # * (branch default)
1342
1342
1343 (resync-all)
1343 (resync-all)
1344
1344
1345 $ hg -R ./server pull ./client-racy
1345 $ hg -R ./server pull ./client-racy
1346 pulling from ./client-racy
1346 pulling from ./client-racy
1347 searching for changes
1347 searching for changes
1348 adding changesets
1348 adding changesets
1349 adding manifests
1349 adding manifests
1350 adding file changes
1350 adding file changes
1351 added 1 changesets with 0 changes to 0 files (+1 heads)
1351 added 1 changesets with 0 changes to 0 files (+1 heads)
1352 new changesets b0ee3d6f51bc (1 drafts)
1352 new changesets b0ee3d6f51bc (1 drafts)
1353 (run 'hg heads .' to see heads, 'hg merge' to merge)
1353 (run 'hg heads .' to see heads, 'hg merge' to merge)
1354 $ hg -R ./client-other pull
1354 $ hg -R ./client-other pull
1355 pulling from ssh://user@dummy/server
1355 pulling from ssh://user@dummy/server
1356 searching for changes
1356 searching for changes
1357 adding changesets
1357 adding changesets
1358 adding manifests
1358 adding manifests
1359 adding file changes
1359 adding file changes
1360 added 1 changesets with 0 changes to 0 files (+1 heads)
1360 added 1 changesets with 0 changes to 0 files (+1 heads)
1361 new changesets b0ee3d6f51bc (1 drafts)
1361 new changesets b0ee3d6f51bc (1 drafts)
1362 (run 'hg heads .' to see heads, 'hg merge' to merge)
1362 (run 'hg heads .' to see heads, 'hg merge' to merge)
1363 $ hg -R ./client-racy pull
1363 $ hg -R ./client-racy pull
1364 pulling from ssh://user@dummy/server
1364 pulling from ssh://user@dummy/server
1365 searching for changes
1365 searching for changes
1366 adding changesets
1366 adding changesets
1367 adding manifests
1367 adding manifests
1368 adding file changes
1368 adding file changes
1369 added 2 changesets with 1 changes to 1 files (+1 heads)
1369 added 2 changesets with 1 changes to 1 files (+1 heads)
1370 new changesets d0a85b2252a9:1b58ee3f79e5 (2 drafts)
1370 new changesets d0a85b2252a9:1b58ee3f79e5 (2 drafts)
1371 (run 'hg heads .' to see heads, 'hg merge' to merge)
1371 (run 'hg heads .' to see heads, 'hg merge' to merge)
1372
1372
1373 $ hg -R server graph
1373 $ hg -R server graph
1374 o b0ee3d6f51bc C-Q (default)
1374 o b0ee3d6f51bc C-Q (default)
1375 |
1375 |
1376 | o 1b58ee3f79e5 C-P (default)
1376 | o 1b58ee3f79e5 C-P (default)
1377 | |
1377 | |
1378 | o d0a85b2252a9 C-O (other)
1378 | o d0a85b2252a9 C-O (other)
1379 |/
1379 |/
1380 o 55a6f1c01b48 C-Z (other)
1380 o 55a6f1c01b48 C-Z (other)
1381 |
1381 |
1382 o 866a66e18630 C-N (default)
1382 o 866a66e18630 C-N (default)
1383 |\
1383 |\
1384 +---o 6fd3090135df C-M (default)
1384 +---o 6fd3090135df C-M (default)
1385 | |
1385 | |
1386 | o cac2cead0ff0 C-L (default)
1386 | o cac2cead0ff0 C-L (default)
1387 | |
1387 | |
1388 o | be705100c623 C-K (default)
1388 o | be705100c623 C-K (default)
1389 |\|
1389 |\|
1390 o | d603e2c0cdd7 C-E (default)
1390 o | d603e2c0cdd7 C-E (default)
1391 | |
1391 | |
1392 | o 59e76faf78bd C-D (default)
1392 | o 59e76faf78bd C-D (default)
1393 | |
1393 | |
1394 | | o 89420bf00fae C-J (default)
1394 | | o 89420bf00fae C-J (default)
1395 | | |
1395 | | |
1396 | | | o b35ed749f288 C-I (my-second-test-branch)
1396 | | | o b35ed749f288 C-I (my-second-test-branch)
1397 | | |/
1397 | | |/
1398 | | o 75d69cba5402 C-G (default)
1398 | | o 75d69cba5402 C-G (default)
1399 | | |
1399 | | |
1400 | | | o 833be552cfe6 C-H (my-first-test-branch)
1400 | | | o 833be552cfe6 C-H (my-first-test-branch)
1401 | | |/
1401 | | |/
1402 | | o d9e379a8c432 C-F (default)
1402 | | o d9e379a8c432 C-F (default)
1403 | | |
1403 | | |
1404 +---o 51c544a58128 C-C (default)
1404 +---o 51c544a58128 C-C (default)
1405 | |
1405 | |
1406 | o a9149a1428e2 C-B (default)
1406 | o a9149a1428e2 C-B (default)
1407 | |
1407 | |
1408 o | 98217d5a1659 C-A (default)
1408 o | 98217d5a1659 C-A (default)
1409 |/
1409 |/
1410 o 842e2fac6304 C-ROOT (default)
1410 o 842e2fac6304 C-ROOT (default)
1411
1411
1412
1412
1413 Creating changesets
1413 Creating changesets
1414
1414
1415 (update 'other' named branch head)
1415 (update 'other' named branch head)
1416
1416
1417 $ hg -R client-other/ up 'desc("C-P")'
1417 $ hg -R client-other/ up 'desc("C-P")'
1418 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1418 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
1419 $ echo aaa >> client-other/a
1419 $ echo aaa >> client-other/a
1420 $ hg -R client-other/ branch --force other
1420 $ hg -R client-other/ branch --force other
1421 marked working directory as branch other
1421 marked working directory as branch other
1422 $ hg -R client-other/ commit -m "C-R"
1422 $ hg -R client-other/ commit -m "C-R"
1423 created new head
1423 created new head
1424
1424
1425 (update 'other named brnach through a 'default' changeset')
1425 (update 'other named brnach through a 'default' changeset')
1426
1426
1427 $ hg -R client-racy/ up 'desc("C-P")'
1427 $ hg -R client-racy/ up 'desc("C-P")'
1428 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1428 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1429 $ echo bbb >> client-racy/a
1429 $ echo bbb >> client-racy/a
1430 $ hg -R client-racy/ commit -m "C-S"
1430 $ hg -R client-racy/ commit -m "C-S"
1431 $ echo bbb >> client-racy/a
1431 $ echo bbb >> client-racy/a
1432 $ hg -R client-racy/ branch --force other
1432 $ hg -R client-racy/ branch --force other
1433 marked working directory as branch other
1433 marked working directory as branch other
1434 $ hg -R client-racy/ commit -m "C-T"
1434 $ hg -R client-racy/ commit -m "C-T"
1435 created new head
1435 created new head
1436
1436
1437 Pushing
1437 Pushing
1438
1438
1439 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
1439 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
1440
1440
1441 $ waiton $TESTTMP/readyfile
1441 $ waiton $TESTTMP/readyfile
1442
1442
1443 $ hg -R client-other push -fr 'tip' --new-branch
1443 $ hg -R client-other push -fr 'tip' --new-branch
1444 pushing to ssh://user@dummy/server
1444 pushing to ssh://user@dummy/server
1445 searching for changes
1445 searching for changes
1446 remote: adding changesets
1446 remote: adding changesets
1447 remote: adding manifests
1447 remote: adding manifests
1448 remote: adding file changes
1448 remote: adding file changes
1449 remote: added 1 changesets with 1 changes to 1 files
1449 remote: added 1 changesets with 1 changes to 1 files
1450
1450
1451 $ release $TESTTMP/watchfile
1451 $ release $TESTTMP/watchfile
1452
1452
1453 Check the result of the push
1453 Check the result of the push
1454
1454
1455 $ cat ./push-log
1455 $ cat ./push-log
1456 pushing to ssh://user@dummy/server
1456 pushing to ssh://user@dummy/server
1457 searching for changes
1457 searching for changes
1458 wrote ready: $TESTTMP/readyfile
1458 wrote ready: $TESTTMP/readyfile
1459 waiting on: $TESTTMP/watchfile
1459 waiting on: $TESTTMP/watchfile
1460 abort: push failed:
1460 abort: push failed:
1461 'remote repository changed while pushing - please try again'
1461 'remote repository changed while pushing - please try again'
1462
1462
1463 $ hg -R server graph
1463 $ hg -R server graph
1464 o de7b9e2ba3f6 C-R (other)
1464 o de7b9e2ba3f6 C-R (other)
1465 |
1465 |
1466 o 1b58ee3f79e5 C-P (default)
1466 o 1b58ee3f79e5 C-P (default)
1467 |
1467 |
1468 o d0a85b2252a9 C-O (other)
1468 o d0a85b2252a9 C-O (other)
1469 |
1469 |
1470 | o b0ee3d6f51bc C-Q (default)
1470 | o b0ee3d6f51bc C-Q (default)
1471 |/
1471 |/
1472 o 55a6f1c01b48 C-Z (other)
1472 o 55a6f1c01b48 C-Z (other)
1473 |
1473 |
1474 o 866a66e18630 C-N (default)
1474 o 866a66e18630 C-N (default)
1475 |\
1475 |\
1476 +---o 6fd3090135df C-M (default)
1476 +---o 6fd3090135df C-M (default)
1477 | |
1477 | |
1478 | o cac2cead0ff0 C-L (default)
1478 | o cac2cead0ff0 C-L (default)
1479 | |
1479 | |
1480 o | be705100c623 C-K (default)
1480 o | be705100c623 C-K (default)
1481 |\|
1481 |\|
1482 o | d603e2c0cdd7 C-E (default)
1482 o | d603e2c0cdd7 C-E (default)
1483 | |
1483 | |
1484 | o 59e76faf78bd C-D (default)
1484 | o 59e76faf78bd C-D (default)
1485 | |
1485 | |
1486 | | o 89420bf00fae C-J (default)
1486 | | o 89420bf00fae C-J (default)
1487 | | |
1487 | | |
1488 | | | o b35ed749f288 C-I (my-second-test-branch)
1488 | | | o b35ed749f288 C-I (my-second-test-branch)
1489 | | |/
1489 | | |/
1490 | | o 75d69cba5402 C-G (default)
1490 | | o 75d69cba5402 C-G (default)
1491 | | |
1491 | | |
1492 | | | o 833be552cfe6 C-H (my-first-test-branch)
1492 | | | o 833be552cfe6 C-H (my-first-test-branch)
1493 | | |/
1493 | | |/
1494 | | o d9e379a8c432 C-F (default)
1494 | | o d9e379a8c432 C-F (default)
1495 | | |
1495 | | |
1496 +---o 51c544a58128 C-C (default)
1496 +---o 51c544a58128 C-C (default)
1497 | |
1497 | |
1498 | o a9149a1428e2 C-B (default)
1498 | o a9149a1428e2 C-B (default)
1499 | |
1499 | |
1500 o | 98217d5a1659 C-A (default)
1500 o | 98217d5a1659 C-A (default)
1501 |/
1501 |/
1502 o 842e2fac6304 C-ROOT (default)
1502 o 842e2fac6304 C-ROOT (default)
1503
1503
1504
1504
1505 raced commit push a new head obsoleting the one touched by the racing push
1505 raced commit push a new head obsoleting the one touched by the racing push
1506 --------------------------------------------------------------------------
1506 --------------------------------------------------------------------------
1507
1507
1508 # b (racing)
1508 # b (racing)
1509 # |
1509 # |
1510 # ΓΈβ‡ β—” a (raced)
1510 # ΓΈβ‡ β—” a (raced)
1511 # |/
1511 # |/
1512 # *
1512 # *
1513
1513
1514 (resync-all)
1514 (resync-all)
1515
1515
1516 $ hg -R ./server pull ./client-racy
1516 $ hg -R ./server pull ./client-racy
1517 pulling from ./client-racy
1517 pulling from ./client-racy
1518 searching for changes
1518 searching for changes
1519 adding changesets
1519 adding changesets
1520 adding manifests
1520 adding manifests
1521 adding file changes
1521 adding file changes
1522 added 2 changesets with 2 changes to 1 files (+1 heads)
1522 added 2 changesets with 2 changes to 1 files (+1 heads)
1523 new changesets 2efd43f7b5ba:3d57ed3c1091 (2 drafts)
1523 new changesets 2efd43f7b5ba:3d57ed3c1091 (2 drafts)
1524 (run 'hg heads .' to see heads, 'hg merge' to merge)
1524 (run 'hg heads .' to see heads, 'hg merge' to merge)
1525 $ hg -R ./client-other pull
1525 $ hg -R ./client-other pull
1526 pulling from ssh://user@dummy/server
1526 pulling from ssh://user@dummy/server
1527 searching for changes
1527 searching for changes
1528 adding changesets
1528 adding changesets
1529 adding manifests
1529 adding manifests
1530 adding file changes
1530 adding file changes
1531 added 2 changesets with 2 changes to 1 files (+1 heads)
1531 added 2 changesets with 2 changes to 1 files (+1 heads)
1532 new changesets 2efd43f7b5ba:3d57ed3c1091 (2 drafts)
1532 new changesets 2efd43f7b5ba:3d57ed3c1091 (2 drafts)
1533 (run 'hg heads' to see heads, 'hg merge' to merge)
1533 (run 'hg heads' to see heads, 'hg merge' to merge)
1534 $ hg -R ./client-racy pull
1534 $ hg -R ./client-racy pull
1535 pulling from ssh://user@dummy/server
1535 pulling from ssh://user@dummy/server
1536 searching for changes
1536 searching for changes
1537 adding changesets
1537 adding changesets
1538 adding manifests
1538 adding manifests
1539 adding file changes
1539 adding file changes
1540 added 1 changesets with 1 changes to 1 files (+1 heads)
1540 added 1 changesets with 1 changes to 1 files (+1 heads)
1541 new changesets de7b9e2ba3f6 (1 drafts)
1541 new changesets de7b9e2ba3f6 (1 drafts)
1542 (run 'hg heads' to see heads, 'hg merge' to merge)
1542 (run 'hg heads' to see heads, 'hg merge' to merge)
1543
1543
1544 $ hg -R server graph
1544 $ hg -R server graph
1545 o 3d57ed3c1091 C-T (other)
1545 o 3d57ed3c1091 C-T (other)
1546 |
1546 |
1547 o 2efd43f7b5ba C-S (default)
1547 o 2efd43f7b5ba C-S (default)
1548 |
1548 |
1549 | o de7b9e2ba3f6 C-R (other)
1549 | o de7b9e2ba3f6 C-R (other)
1550 |/
1550 |/
1551 o 1b58ee3f79e5 C-P (default)
1551 o 1b58ee3f79e5 C-P (default)
1552 |
1552 |
1553 o d0a85b2252a9 C-O (other)
1553 o d0a85b2252a9 C-O (other)
1554 |
1554 |
1555 | o b0ee3d6f51bc C-Q (default)
1555 | o b0ee3d6f51bc C-Q (default)
1556 |/
1556 |/
1557 o 55a6f1c01b48 C-Z (other)
1557 o 55a6f1c01b48 C-Z (other)
1558 |
1558 |
1559 o 866a66e18630 C-N (default)
1559 o 866a66e18630 C-N (default)
1560 |\
1560 |\
1561 +---o 6fd3090135df C-M (default)
1561 +---o 6fd3090135df C-M (default)
1562 | |
1562 | |
1563 | o cac2cead0ff0 C-L (default)
1563 | o cac2cead0ff0 C-L (default)
1564 | |
1564 | |
1565 o | be705100c623 C-K (default)
1565 o | be705100c623 C-K (default)
1566 |\|
1566 |\|
1567 o | d603e2c0cdd7 C-E (default)
1567 o | d603e2c0cdd7 C-E (default)
1568 | |
1568 | |
1569 | o 59e76faf78bd C-D (default)
1569 | o 59e76faf78bd C-D (default)
1570 | |
1570 | |
1571 | | o 89420bf00fae C-J (default)
1571 | | o 89420bf00fae C-J (default)
1572 | | |
1572 | | |
1573 | | | o b35ed749f288 C-I (my-second-test-branch)
1573 | | | o b35ed749f288 C-I (my-second-test-branch)
1574 | | |/
1574 | | |/
1575 | | o 75d69cba5402 C-G (default)
1575 | | o 75d69cba5402 C-G (default)
1576 | | |
1576 | | |
1577 | | | o 833be552cfe6 C-H (my-first-test-branch)
1577 | | | o 833be552cfe6 C-H (my-first-test-branch)
1578 | | |/
1578 | | |/
1579 | | o d9e379a8c432 C-F (default)
1579 | | o d9e379a8c432 C-F (default)
1580 | | |
1580 | | |
1581 +---o 51c544a58128 C-C (default)
1581 +---o 51c544a58128 C-C (default)
1582 | |
1582 | |
1583 | o a9149a1428e2 C-B (default)
1583 | o a9149a1428e2 C-B (default)
1584 | |
1584 | |
1585 o | 98217d5a1659 C-A (default)
1585 o | 98217d5a1659 C-A (default)
1586 |/
1586 |/
1587 o 842e2fac6304 C-ROOT (default)
1587 o 842e2fac6304 C-ROOT (default)
1588
1588
1589
1589
1590 Creating changesets and markers
1590 Creating changesets and markers
1591
1591
1592 (continue existing head)
1592 (continue existing head)
1593
1593
1594 $ hg -R client-other/ up 'desc("C-Q")'
1594 $ hg -R client-other/ up 'desc("C-Q")'
1595 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1595 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1596 $ echo aaa >> client-other/a
1596 $ echo aaa >> client-other/a
1597 $ hg -R client-other/ commit -m "C-U"
1597 $ hg -R client-other/ commit -m "C-U"
1598
1598
1599 (new topo branch obsoleting that same head)
1599 (new topo branch obsoleting that same head)
1600
1600
1601 $ hg -R client-racy/ up 'desc("C-Z")'
1601 $ hg -R client-racy/ up 'desc("C-Z")'
1602 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1602 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1603 $ echo bbb >> client-racy/a
1603 $ echo bbb >> client-racy/a
1604 $ hg -R client-racy/ branch --force default
1604 $ hg -R client-racy/ branch --force default
1605 marked working directory as branch default
1605 marked working directory as branch default
1606 $ hg -R client-racy/ commit -m "C-V"
1606 $ hg -R client-racy/ commit -m "C-V"
1607 created new head
1607 created new head
1608 $ ID_Q=`hg -R client-racy log -T '{node}\n' -r 'desc("C-Q")'`
1608 $ ID_Q=`hg -R client-racy log -T '{node}\n' -r 'desc("C-Q")'`
1609 $ ID_V=`hg -R client-racy log -T '{node}\n' -r 'desc("C-V")'`
1609 $ ID_V=`hg -R client-racy log -T '{node}\n' -r 'desc("C-V")'`
1610 $ hg -R client-racy debugobsolete $ID_Q $ID_V
1610 $ hg -R client-racy debugobsolete $ID_Q $ID_V
1611 obsoleted 1 changesets
1611 obsoleted 1 changesets
1612
1612
1613 Pushing
1613 Pushing
1614
1614
1615 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
1615 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
1616
1616
1617 $ waiton $TESTTMP/readyfile
1617 $ waiton $TESTTMP/readyfile
1618
1618
1619 $ hg -R client-other push -fr 'tip' --new-branch
1619 $ hg -R client-other push -fr 'tip' --new-branch
1620 pushing to ssh://user@dummy/server
1620 pushing to ssh://user@dummy/server
1621 searching for changes
1621 searching for changes
1622 remote: adding changesets
1622 remote: adding changesets
1623 remote: adding manifests
1623 remote: adding manifests
1624 remote: adding file changes
1624 remote: adding file changes
1625 remote: added 1 changesets with 0 changes to 0 files
1625 remote: added 1 changesets with 0 changes to 0 files
1626
1626
1627 $ release $TESTTMP/watchfile
1627 $ release $TESTTMP/watchfile
1628
1628
1629 Check the result of the push
1629 Check the result of the push
1630
1630
1631 $ cat ./push-log
1631 $ cat ./push-log
1632 pushing to ssh://user@dummy/server
1632 pushing to ssh://user@dummy/server
1633 searching for changes
1633 searching for changes
1634 wrote ready: $TESTTMP/readyfile
1634 wrote ready: $TESTTMP/readyfile
1635 waiting on: $TESTTMP/watchfile
1635 waiting on: $TESTTMP/watchfile
1636 abort: push failed:
1636 abort: push failed:
1637 'remote repository changed while pushing - please try again'
1637 'remote repository changed while pushing - please try again'
1638
1638
1639 $ hg -R server debugobsolete
1639 $ hg -R server debugobsolete
1640 $ hg -R server graph
1640 $ hg -R server graph
1641 o a98a47d8b85b C-U (default)
1641 o a98a47d8b85b C-U (default)
1642 |
1642 |
1643 o b0ee3d6f51bc C-Q (default)
1643 o b0ee3d6f51bc C-Q (default)
1644 |
1644 |
1645 | o 3d57ed3c1091 C-T (other)
1645 | o 3d57ed3c1091 C-T (other)
1646 | |
1646 | |
1647 | o 2efd43f7b5ba C-S (default)
1647 | o 2efd43f7b5ba C-S (default)
1648 | |
1648 | |
1649 | | o de7b9e2ba3f6 C-R (other)
1649 | | o de7b9e2ba3f6 C-R (other)
1650 | |/
1650 | |/
1651 | o 1b58ee3f79e5 C-P (default)
1651 | o 1b58ee3f79e5 C-P (default)
1652 | |
1652 | |
1653 | o d0a85b2252a9 C-O (other)
1653 | o d0a85b2252a9 C-O (other)
1654 |/
1654 |/
1655 o 55a6f1c01b48 C-Z (other)
1655 o 55a6f1c01b48 C-Z (other)
1656 |
1656 |
1657 o 866a66e18630 C-N (default)
1657 o 866a66e18630 C-N (default)
1658 |\
1658 |\
1659 +---o 6fd3090135df C-M (default)
1659 +---o 6fd3090135df C-M (default)
1660 | |
1660 | |
1661 | o cac2cead0ff0 C-L (default)
1661 | o cac2cead0ff0 C-L (default)
1662 | |
1662 | |
1663 o | be705100c623 C-K (default)
1663 o | be705100c623 C-K (default)
1664 |\|
1664 |\|
1665 o | d603e2c0cdd7 C-E (default)
1665 o | d603e2c0cdd7 C-E (default)
1666 | |
1666 | |
1667 | o 59e76faf78bd C-D (default)
1667 | o 59e76faf78bd C-D (default)
1668 | |
1668 | |
1669 | | o 89420bf00fae C-J (default)
1669 | | o 89420bf00fae C-J (default)
1670 | | |
1670 | | |
1671 | | | o b35ed749f288 C-I (my-second-test-branch)
1671 | | | o b35ed749f288 C-I (my-second-test-branch)
1672 | | |/
1672 | | |/
1673 | | o 75d69cba5402 C-G (default)
1673 | | o 75d69cba5402 C-G (default)
1674 | | |
1674 | | |
1675 | | | o 833be552cfe6 C-H (my-first-test-branch)
1675 | | | o 833be552cfe6 C-H (my-first-test-branch)
1676 | | |/
1676 | | |/
1677 | | o d9e379a8c432 C-F (default)
1677 | | o d9e379a8c432 C-F (default)
1678 | | |
1678 | | |
1679 +---o 51c544a58128 C-C (default)
1679 +---o 51c544a58128 C-C (default)
1680 | |
1680 | |
1681 | o a9149a1428e2 C-B (default)
1681 | o a9149a1428e2 C-B (default)
1682 | |
1682 | |
1683 o | 98217d5a1659 C-A (default)
1683 o | 98217d5a1659 C-A (default)
1684 |/
1684 |/
1685 o 842e2fac6304 C-ROOT (default)
1685 o 842e2fac6304 C-ROOT (default)
1686
1686
1687
1687
1688 racing commit push a new head obsoleting the one touched by the raced push
1688 racing commit push a new head obsoleting the one touched by the raced push
1689 --------------------------------------------------------------------------
1689 --------------------------------------------------------------------------
1690
1690
1691 (mirror test case of the previous one
1691 (mirror test case of the previous one
1692
1692
1693 # a (raced branch default)
1693 # a (raced branch default)
1694 # |
1694 # |
1695 # ΓΈβ‡ β—” b (racing)
1695 # ΓΈβ‡ β—” b (racing)
1696 # |/
1696 # |/
1697 # *
1697 # *
1698
1698
1699 (resync-all)
1699 (resync-all)
1700
1700
1701 $ hg -R ./server pull ./client-racy
1701 $ hg -R ./server pull ./client-racy
1702 pulling from ./client-racy
1702 pulling from ./client-racy
1703 searching for changes
1703 searching for changes
1704 adding changesets
1704 adding changesets
1705 adding manifests
1705 adding manifests
1706 adding file changes
1706 adding file changes
1707 added 1 changesets with 1 changes to 1 files (+1 heads)
1707 added 1 changesets with 1 changes to 1 files (+1 heads)
1708 1 new obsolescence markers
1708 1 new obsolescence markers
1709 obsoleted 1 changesets
1709 obsoleted 1 changesets
1710 1 new orphan changesets
1710 1 new orphan changesets
1711 new changesets 720c5163ecf6 (1 drafts)
1711 new changesets 720c5163ecf6 (1 drafts)
1712 (run 'hg heads .' to see heads, 'hg merge' to merge)
1712 (run 'hg heads .' to see heads, 'hg merge' to merge)
1713 $ hg -R ./client-other pull
1713 $ hg -R ./client-other pull
1714 pulling from ssh://user@dummy/server
1714 pulling from ssh://user@dummy/server
1715 searching for changes
1715 searching for changes
1716 adding changesets
1716 adding changesets
1717 adding manifests
1717 adding manifests
1718 adding file changes
1718 adding file changes
1719 added 1 changesets with 1 changes to 1 files (+1 heads)
1719 added 1 changesets with 1 changes to 1 files (+1 heads)
1720 1 new obsolescence markers
1720 1 new obsolescence markers
1721 obsoleted 1 changesets
1721 obsoleted 1 changesets
1722 1 new orphan changesets
1722 1 new orphan changesets
1723 new changesets 720c5163ecf6 (1 drafts)
1723 new changesets 720c5163ecf6 (1 drafts)
1724 (run 'hg heads .' to see heads, 'hg merge' to merge)
1724 (run 'hg heads .' to see heads, 'hg merge' to merge)
1725 $ hg -R ./client-racy pull
1725 $ hg -R ./client-racy pull
1726 pulling from ssh://user@dummy/server
1726 pulling from ssh://user@dummy/server
1727 searching for changes
1727 searching for changes
1728 adding changesets
1728 adding changesets
1729 adding manifests
1729 adding manifests
1730 adding file changes
1730 adding file changes
1731 added 1 changesets with 0 changes to 0 files
1731 added 1 changesets with 0 changes to 0 files
1732 1 new orphan changesets
1732 1 new orphan changesets
1733 new changesets a98a47d8b85b (1 drafts)
1733 new changesets a98a47d8b85b (1 drafts)
1734 (run 'hg update' to get a working copy)
1734 (run 'hg update' to get a working copy)
1735
1735
1736 $ hg -R server debugobsolete
1736 $ hg -R server debugobsolete
1737 b0ee3d6f51bc4c0ca6d4f2907708027a6c376233 720c5163ecf64dcc6216bee2d62bf3edb1882499 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
1737 b0ee3d6f51bc4c0ca6d4f2907708027a6c376233 720c5163ecf64dcc6216bee2d62bf3edb1882499 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
1738 $ hg -R server graph
1738 $ hg -R server graph
1739 o 720c5163ecf6 C-V (default)
1739 o 720c5163ecf6 C-V (default)
1740 |
1740 |
1741 | * a98a47d8b85b C-U (default)
1741 | * a98a47d8b85b C-U (default)
1742 | |
1742 | |
1743 | x b0ee3d6f51bc C-Q (default)
1743 | x b0ee3d6f51bc C-Q (default)
1744 |/
1744 |/
1745 | o 3d57ed3c1091 C-T (other)
1745 | o 3d57ed3c1091 C-T (other)
1746 | |
1746 | |
1747 | o 2efd43f7b5ba C-S (default)
1747 | o 2efd43f7b5ba C-S (default)
1748 | |
1748 | |
1749 | | o de7b9e2ba3f6 C-R (other)
1749 | | o de7b9e2ba3f6 C-R (other)
1750 | |/
1750 | |/
1751 | o 1b58ee3f79e5 C-P (default)
1751 | o 1b58ee3f79e5 C-P (default)
1752 | |
1752 | |
1753 | o d0a85b2252a9 C-O (other)
1753 | o d0a85b2252a9 C-O (other)
1754 |/
1754 |/
1755 o 55a6f1c01b48 C-Z (other)
1755 o 55a6f1c01b48 C-Z (other)
1756 |
1756 |
1757 o 866a66e18630 C-N (default)
1757 o 866a66e18630 C-N (default)
1758 |\
1758 |\
1759 +---o 6fd3090135df C-M (default)
1759 +---o 6fd3090135df C-M (default)
1760 | |
1760 | |
1761 | o cac2cead0ff0 C-L (default)
1761 | o cac2cead0ff0 C-L (default)
1762 | |
1762 | |
1763 o | be705100c623 C-K (default)
1763 o | be705100c623 C-K (default)
1764 |\|
1764 |\|
1765 o | d603e2c0cdd7 C-E (default)
1765 o | d603e2c0cdd7 C-E (default)
1766 | |
1766 | |
1767 | o 59e76faf78bd C-D (default)
1767 | o 59e76faf78bd C-D (default)
1768 | |
1768 | |
1769 | | o 89420bf00fae C-J (default)
1769 | | o 89420bf00fae C-J (default)
1770 | | |
1770 | | |
1771 | | | o b35ed749f288 C-I (my-second-test-branch)
1771 | | | o b35ed749f288 C-I (my-second-test-branch)
1772 | | |/
1772 | | |/
1773 | | o 75d69cba5402 C-G (default)
1773 | | o 75d69cba5402 C-G (default)
1774 | | |
1774 | | |
1775 | | | o 833be552cfe6 C-H (my-first-test-branch)
1775 | | | o 833be552cfe6 C-H (my-first-test-branch)
1776 | | |/
1776 | | |/
1777 | | o d9e379a8c432 C-F (default)
1777 | | o d9e379a8c432 C-F (default)
1778 | | |
1778 | | |
1779 +---o 51c544a58128 C-C (default)
1779 +---o 51c544a58128 C-C (default)
1780 | |
1780 | |
1781 | o a9149a1428e2 C-B (default)
1781 | o a9149a1428e2 C-B (default)
1782 | |
1782 | |
1783 o | 98217d5a1659 C-A (default)
1783 o | 98217d5a1659 C-A (default)
1784 |/
1784 |/
1785 o 842e2fac6304 C-ROOT (default)
1785 o 842e2fac6304 C-ROOT (default)
1786
1786
1787
1787
1788 Creating changesets and markers
1788 Creating changesets and markers
1789
1789
1790 (new topo branch obsoleting that same head)
1790 (new topo branch obsoleting that same head)
1791
1791
1792 $ hg -R client-other/ up 'desc("C-Q")'
1792 $ hg -R client-other/ up 'desc("C-Q")'
1793 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1793 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1794 $ echo bbb >> client-other/a
1794 $ echo bbb >> client-other/a
1795 $ hg -R client-other/ branch --force default
1795 $ hg -R client-other/ branch --force default
1796 marked working directory as branch default
1796 marked working directory as branch default
1797 $ hg -R client-other/ commit -m "C-W"
1797 $ hg -R client-other/ commit -m "C-W"
1798 1 new orphan changesets
1798 1 new orphan changesets
1799 created new head
1799 created new head
1800 $ ID_V=`hg -R client-other log -T '{node}\n' -r 'desc("C-V")'`
1800 $ ID_V=`hg -R client-other log -T '{node}\n' -r 'desc("C-V")'`
1801 $ ID_W=`hg -R client-other log -T '{node}\n' -r 'desc("C-W")'`
1801 $ ID_W=`hg -R client-other log -T '{node}\n' -r 'desc("C-W")'`
1802 $ hg -R client-other debugobsolete $ID_V $ID_W
1802 $ hg -R client-other debugobsolete $ID_V $ID_W
1803 obsoleted 1 changesets
1803 obsoleted 1 changesets
1804
1804
1805 (continue the same head)
1805 (continue the same head)
1806
1806
1807 $ echo aaa >> client-racy/a
1807 $ echo aaa >> client-racy/a
1808 $ hg -R client-racy/ commit -m "C-X"
1808 $ hg -R client-racy/ commit -m "C-X"
1809
1809
1810 Pushing
1810 Pushing
1811
1811
1812 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
1812 $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
1813
1813
1814 $ waiton $TESTTMP/readyfile
1814 $ waiton $TESTTMP/readyfile
1815
1815
1816 $ hg -R client-other push -fr 'tip' --new-branch
1816 $ hg -R client-other push -fr 'tip' --new-branch
1817 pushing to ssh://user@dummy/server
1817 pushing to ssh://user@dummy/server
1818 searching for changes
1818 searching for changes
1819 remote: adding changesets
1819 remote: adding changesets
1820 remote: adding manifests
1820 remote: adding manifests
1821 remote: adding file changes
1821 remote: adding file changes
1822 remote: added 1 changesets with 0 changes to 1 files (+1 heads)
1822 remote: added 1 changesets with 0 changes to 1 files (+1 heads)
1823 remote: 1 new obsolescence markers
1823 remote: 1 new obsolescence markers
1824 remote: obsoleted 1 changesets
1824 remote: obsoleted 1 changesets
1825 remote: 1 new orphan changesets
1825 remote: 1 new orphan changesets
1826
1826
1827 $ release $TESTTMP/watchfile
1827 $ release $TESTTMP/watchfile
1828
1828
1829 Check the result of the push
1829 Check the result of the push
1830
1830
1831 $ cat ./push-log
1831 $ cat ./push-log
1832 pushing to ssh://user@dummy/server
1832 pushing to ssh://user@dummy/server
1833 searching for changes
1833 searching for changes
1834 wrote ready: $TESTTMP/readyfile
1834 wrote ready: $TESTTMP/readyfile
1835 waiting on: $TESTTMP/watchfile
1835 waiting on: $TESTTMP/watchfile
1836 abort: push failed:
1836 abort: push failed:
1837 'remote repository changed while pushing - please try again'
1837 'remote repository changed while pushing - please try again'
1838
1838
1839 $ hg -R server debugobsolete
1839 $ hg -R server debugobsolete
1840 b0ee3d6f51bc4c0ca6d4f2907708027a6c376233 720c5163ecf64dcc6216bee2d62bf3edb1882499 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
1840 b0ee3d6f51bc4c0ca6d4f2907708027a6c376233 720c5163ecf64dcc6216bee2d62bf3edb1882499 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
1841 720c5163ecf64dcc6216bee2d62bf3edb1882499 39bc0598afe90ab18da460bafecc0fa953b77596 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
1841 720c5163ecf64dcc6216bee2d62bf3edb1882499 39bc0598afe90ab18da460bafecc0fa953b77596 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
1842 $ hg -R server graph --hidden
1842 $ hg -R server graph --hidden
1843 * 39bc0598afe9 C-W (default)
1843 * 39bc0598afe9 C-W (default)
1844 |
1844 |
1845 | * a98a47d8b85b C-U (default)
1845 | * a98a47d8b85b C-U (default)
1846 |/
1846 |/
1847 x b0ee3d6f51bc C-Q (default)
1847 x b0ee3d6f51bc C-Q (default)
1848 |
1848 |
1849 | o 3d57ed3c1091 C-T (other)
1849 | o 3d57ed3c1091 C-T (other)
1850 | |
1850 | |
1851 | o 2efd43f7b5ba C-S (default)
1851 | o 2efd43f7b5ba C-S (default)
1852 | |
1852 | |
1853 | | o de7b9e2ba3f6 C-R (other)
1853 | | o de7b9e2ba3f6 C-R (other)
1854 | |/
1854 | |/
1855 | o 1b58ee3f79e5 C-P (default)
1855 | o 1b58ee3f79e5 C-P (default)
1856 | |
1856 | |
1857 | o d0a85b2252a9 C-O (other)
1857 | o d0a85b2252a9 C-O (other)
1858 |/
1858 |/
1859 | x 720c5163ecf6 C-V (default)
1859 | x 720c5163ecf6 C-V (default)
1860 |/
1860 |/
1861 o 55a6f1c01b48 C-Z (other)
1861 o 55a6f1c01b48 C-Z (other)
1862 |
1862 |
1863 o 866a66e18630 C-N (default)
1863 o 866a66e18630 C-N (default)
1864 |\
1864 |\
1865 +---o 6fd3090135df C-M (default)
1865 +---o 6fd3090135df C-M (default)
1866 | |
1866 | |
1867 | o cac2cead0ff0 C-L (default)
1867 | o cac2cead0ff0 C-L (default)
1868 | |
1868 | |
1869 o | be705100c623 C-K (default)
1869 o | be705100c623 C-K (default)
1870 |\|
1870 |\|
1871 o | d603e2c0cdd7 C-E (default)
1871 o | d603e2c0cdd7 C-E (default)
1872 | |
1872 | |
1873 | o 59e76faf78bd C-D (default)
1873 | o 59e76faf78bd C-D (default)
1874 | |
1874 | |
1875 | | o 89420bf00fae C-J (default)
1875 | | o 89420bf00fae C-J (default)
1876 | | |
1876 | | |
1877 | | | o b35ed749f288 C-I (my-second-test-branch)
1877 | | | o b35ed749f288 C-I (my-second-test-branch)
1878 | | |/
1878 | | |/
1879 | | o 75d69cba5402 C-G (default)
1879 | | o 75d69cba5402 C-G (default)
1880 | | |
1880 | | |
1881 | | | o 833be552cfe6 C-H (my-first-test-branch)
1881 | | | o 833be552cfe6 C-H (my-first-test-branch)
1882 | | |/
1882 | | |/
1883 | | o d9e379a8c432 C-F (default)
1883 | | o d9e379a8c432 C-F (default)
1884 | | |
1884 | | |
1885 +---o 51c544a58128 C-C (default)
1885 +---o 51c544a58128 C-C (default)
1886 | |
1886 | |
1887 | o a9149a1428e2 C-B (default)
1887 | o a9149a1428e2 C-B (default)
1888 | |
1888 | |
1889 o | 98217d5a1659 C-A (default)
1889 o | 98217d5a1659 C-A (default)
1890 |/
1890 |/
1891 o 842e2fac6304 C-ROOT (default)
1891 o 842e2fac6304 C-ROOT (default)
1892
1892
General Comments 0
You need to be logged in to leave comments. Login now