Show More
@@ -5623,11 +5623,11 b' def purge(ui, repo, *dirs, **opts):' | |||||
5623 | ), |
|
5623 | ), | |
5624 | ] |
|
5624 | ] | |
5625 | + remoteopts, |
|
5625 | + remoteopts, | |
5626 | _(b'[-f] [-r REV]... [-e CMD] [--remotecmd CMD] [DEST]'), |
|
5626 | _(b'[-f] [-r REV]... [-e CMD] [--remotecmd CMD] [DEST]...'), | |
5627 | helpcategory=command.CATEGORY_REMOTE_REPO_MANAGEMENT, |
|
5627 | helpcategory=command.CATEGORY_REMOTE_REPO_MANAGEMENT, | |
5628 | helpbasic=True, |
|
5628 | helpbasic=True, | |
5629 | ) |
|
5629 | ) | |
5630 |
def push(ui, repo, |
|
5630 | def push(ui, repo, *dests, **opts): | |
5631 | """push changes to the specified destination |
|
5631 | """push changes to the specified destination | |
5632 |
|
5632 | |||
5633 | Push changesets from the local repository to the specified |
|
5633 | Push changesets from the local repository to the specified | |
@@ -5663,6 +5663,9 b' def push(ui, repo, dest=None, **opts):' | |||||
5663 | Please see :hg:`help urls` for important details about ``ssh://`` |
|
5663 | Please see :hg:`help urls` for important details about ``ssh://`` | |
5664 | URLs. If DESTINATION is omitted, a default path will be used. |
|
5664 | URLs. If DESTINATION is omitted, a default path will be used. | |
5665 |
|
5665 | |||
|
5666 | When passed multiple destinations, push will process them one after the | |||
|
5667 | other, but stop should an error occur. | |||
|
5668 | ||||
5666 | .. container:: verbose |
|
5669 | .. container:: verbose | |
5667 |
|
5670 | |||
5668 | The --pushvars option sends strings to the server that become |
|
5671 | The --pushvars option sends strings to the server that become | |
@@ -5706,7 +5709,12 b' def push(ui, repo, dest=None, **opts):' | |||||
5706 | # if we try to push a deleted bookmark, translate it to null |
|
5709 | # if we try to push a deleted bookmark, translate it to null | |
5707 | # this lets simultaneous -r, -b options continue working |
|
5710 | # this lets simultaneous -r, -b options continue working | |
5708 | opts.setdefault(b'rev', []).append(b"null") |
|
5711 | opts.setdefault(b'rev', []).append(b"null") | |
5709 | if True: |
|
5712 | ||
|
5713 | if not dests: | |||
|
5714 | dests = [None] | |||
|
5715 | some_pushed = False | |||
|
5716 | result = 0 | |||
|
5717 | for dest in dests: | |||
5710 | path = ui.getpath(dest, default=(b'default-push', b'default')) |
|
5718 | path = ui.getpath(dest, default=(b'default-push', b'default')) | |
5711 | if not path: |
|
5719 | if not path: | |
5712 | raise error.ConfigError( |
|
5720 | raise error.ConfigError( | |
@@ -5753,9 +5761,9 b' def push(ui, repo, dest=None, **opts):' | |||||
5753 | c = repo[b'.'] |
|
5761 | c = repo[b'.'] | |
5754 | subs = c.substate # only repos that are committed |
|
5762 | subs = c.substate # only repos that are committed | |
5755 | for s in sorted(subs): |
|
5763 | for s in sorted(subs): | |
5756 | result = c.sub(s).push(opts) |
|
5764 | sub_result = c.sub(s).push(opts) | |
5757 | if result == 0: |
|
5765 | if sub_result == 0: | |
5758 |
return |
|
5766 | return 1 | |
5759 | finally: |
|
5767 | finally: | |
5760 | del repo._subtoppath |
|
5768 | del repo._subtoppath | |
5761 |
|
5769 | |||
@@ -5775,15 +5783,24 b' def push(ui, repo, dest=None, **opts):' | |||||
5775 | opargs=opargs, |
|
5783 | opargs=opargs, | |
5776 | ) |
|
5784 | ) | |
5777 |
|
5785 | |||
5778 |
|
|
5786 | if pushop.cgresult == 0: | |
|
5787 | result = 1 | |||
|
5788 | elif pushop.cgresult is not None: | |||
|
5789 | some_pushed = True | |||
5779 |
|
5790 | |||
5780 | if pushop.bkresult is not None: |
|
5791 | if pushop.bkresult is not None: | |
5781 | if pushop.bkresult == 2: |
|
5792 | if pushop.bkresult == 2: | |
5782 | result = 2 |
|
5793 | result = 2 | |
5783 | elif not result and pushop.bkresult: |
|
5794 | elif not result and pushop.bkresult: | |
5784 | result = 2 |
|
5795 | result = 2 | |
|
5796 | ||||
|
5797 | if result: | |||
|
5798 | break | |||
|
5799 | ||||
5785 | finally: |
|
5800 | finally: | |
5786 | other.close() |
|
5801 | other.close() | |
|
5802 | if result == 0 and not some_pushed: | |||
|
5803 | result = 1 | |||
5787 | return result |
|
5804 | return result | |
5788 |
|
5805 | |||
5789 |
|
5806 |
@@ -71,6 +71,9 b' Various other repositories' | |||||
71 | Test simple bare operation |
|
71 | Test simple bare operation | |
72 | ========================== |
|
72 | ========================== | |
73 |
|
73 | |||
|
74 | pull | |||
|
75 | ---- | |||
|
76 | ||||
74 | $ hg clone main-repo test-repo-bare --rev 0 -U |
|
77 | $ hg clone main-repo test-repo-bare --rev 0 -U | |
75 | adding changesets |
|
78 | adding changesets | |
76 | adding manifests |
|
79 | adding manifests | |
@@ -121,9 +124,90 b' Test simple bare operation' | |||||
121 | o A 0 |
|
124 | o A 0 | |
122 |
|
125 | |||
123 |
|
126 | |||
|
127 | push | |||
|
128 | ---- | |||
|
129 | ||||
|
130 | $ cp -R ./branch-E ./branch-E-push | |||
|
131 | $ cp -R ./branch-G ./branch-G-push | |||
|
132 | $ cp -R ./branch-H ./branch-H-push | |||
|
133 | $ hg push --force -R test-repo-bare ./branch-E-push ./branch-G-push ./branch-H-push | |||
|
134 | pushing to ./branch-E-push | |||
|
135 | searching for changes | |||
|
136 | adding changesets | |||
|
137 | adding manifests | |||
|
138 | adding file changes | |||
|
139 | added 3 changesets with 3 changes to 3 files (+2 heads) | |||
|
140 | pushing to ./branch-G-push | |||
|
141 | searching for changes | |||
|
142 | adding changesets | |||
|
143 | adding manifests | |||
|
144 | adding file changes | |||
|
145 | added 4 changesets with 4 changes to 4 files (+2 heads) | |||
|
146 | pushing to ./branch-H-push | |||
|
147 | searching for changes | |||
|
148 | adding changesets | |||
|
149 | adding manifests | |||
|
150 | adding file changes | |||
|
151 | added 4 changesets with 4 changes to 4 files (+2 heads) | |||
|
152 | $ hg log -R ./branch-E-push -T '{desc} {rev}\n' --rev 'sort(all(), "topo")' -G | |||
|
153 | o H 7 | |||
|
154 | | | |||
|
155 | | o E 4 | |||
|
156 | | | | |||
|
157 | | o D 3 | |||
|
158 | |/ | |||
|
159 | o C 2 | |||
|
160 | | | |||
|
161 | | o G 6 | |||
|
162 | | | | |||
|
163 | | o F 5 | |||
|
164 | |/ | |||
|
165 | o B 1 | |||
|
166 | | | |||
|
167 | o A 0 | |||
|
168 | ||||
|
169 | $ hg log -R ./branch-G-push -T '{desc} {rev}\n' --rev 'sort(all(), "topo")' -G | |||
|
170 | o H 7 | |||
|
171 | | | |||
|
172 | | o E 6 | |||
|
173 | | | | |||
|
174 | | o D 5 | |||
|
175 | |/ | |||
|
176 | o C 4 | |||
|
177 | | | |||
|
178 | | o G 3 | |||
|
179 | | | | |||
|
180 | | o F 2 | |||
|
181 | |/ | |||
|
182 | o B 1 | |||
|
183 | | | |||
|
184 | o A 0 | |||
|
185 | ||||
|
186 | $ hg log -R ./branch-H-push -T '{desc} {rev}\n' --rev 'sort(all(), "topo")' -G | |||
|
187 | o G 7 | |||
|
188 | | | |||
|
189 | o F 6 | |||
|
190 | | | |||
|
191 | | o E 5 | |||
|
192 | | | | |||
|
193 | | o D 4 | |||
|
194 | | | | |||
|
195 | | | o H 3 | |||
|
196 | | |/ | |||
|
197 | | o C 2 | |||
|
198 | |/ | |||
|
199 | o B 1 | |||
|
200 | | | |||
|
201 | o A 0 | |||
|
202 | ||||
|
203 | $ rm -rf ./*-push | |||
|
204 | ||||
124 | Test operation with a target |
|
205 | Test operation with a target | |
125 | ============================ |
|
206 | ============================ | |
126 |
|
207 | |||
|
208 | pull | |||
|
209 | ---- | |||
|
210 | ||||
127 | $ hg clone main-repo test-repo-rev --rev 0 -U |
|
211 | $ hg clone main-repo test-repo-rev --rev 0 -U | |
128 | adding changesets |
|
212 | adding changesets | |
129 | adding manifests |
|
213 | adding manifests | |
@@ -199,6 +283,125 b' different repositories.' | |||||
199 | o A 0 |
|
283 | o A 0 | |
200 |
|
284 | |||
201 |
|
285 | |||
|
286 | push | |||
|
287 | ---- | |||
|
288 | ||||
|
289 | We only push a specific branch with --rev | |||
|
290 | ||||
|
291 | $ cp -R ./branch-E ./branch-E-push | |||
|
292 | $ cp -R ./branch-G ./branch-G-push | |||
|
293 | $ cp -R ./branch-H ./branch-H-push | |||
|
294 | $ hg push --force -R test-repo-bare ./branch-E-push ./branch-G-push ./branch-H-push --rev default | |||
|
295 | pushing to ./branch-E-push | |||
|
296 | searching for changes | |||
|
297 | adding changesets | |||
|
298 | adding manifests | |||
|
299 | adding file changes | |||
|
300 | added 1 changesets with 1 changes to 1 files (+1 heads) | |||
|
301 | pushing to ./branch-G-push | |||
|
302 | searching for changes | |||
|
303 | adding changesets | |||
|
304 | adding manifests | |||
|
305 | adding file changes | |||
|
306 | added 2 changesets with 2 changes to 2 files (+1 heads) | |||
|
307 | pushing to ./branch-H-push | |||
|
308 | searching for changes | |||
|
309 | no changes found | |||
|
310 | $ hg log -R ./branch-E-push -T '{desc} {rev}\n' --rev 'sort(all(), "topo")' -G | |||
|
311 | o H 5 | |||
|
312 | | | |||
|
313 | | o E 4 | |||
|
314 | | | | |||
|
315 | | o D 3 | |||
|
316 | |/ | |||
|
317 | o C 2 | |||
|
318 | | | |||
|
319 | o B 1 | |||
|
320 | | | |||
|
321 | o A 0 | |||
|
322 | ||||
|
323 | $ hg log -R ./branch-G-push -T '{desc} {rev}\n' --rev 'sort(all(), "topo")' -G | |||
|
324 | o H 5 | |||
|
325 | | | |||
|
326 | o C 4 | |||
|
327 | | | |||
|
328 | | o G 3 | |||
|
329 | | | | |||
|
330 | | o F 2 | |||
|
331 | |/ | |||
|
332 | o B 1 | |||
|
333 | | | |||
|
334 | o A 0 | |||
|
335 | ||||
|
336 | $ hg log -R ./branch-H-push -T '{desc} {rev}\n' --rev 'sort(all(), "topo")' -G | |||
|
337 | o H 3 | |||
|
338 | | | |||
|
339 | o C 2 | |||
|
340 | | | |||
|
341 | o B 1 | |||
|
342 | | | |||
|
343 | o A 0 | |||
|
344 | ||||
|
345 | $ rm -rf ./*-push | |||
|
346 | ||||
|
347 | Same push, but the first one is a no-op | |||
|
348 | ||||
|
349 | $ cp -R ./branch-E ./branch-E-push | |||
|
350 | $ cp -R ./branch-G ./branch-G-push | |||
|
351 | $ cp -R ./branch-H ./branch-H-push | |||
|
352 | $ hg push --force -R test-repo-bare ./branch-G-push ./branch-H-push ./branch-E-push --rev default | |||
|
353 | pushing to ./branch-G-push | |||
|
354 | searching for changes | |||
|
355 | adding changesets | |||
|
356 | adding manifests | |||
|
357 | adding file changes | |||
|
358 | added 2 changesets with 2 changes to 2 files (+1 heads) | |||
|
359 | pushing to ./branch-H-push | |||
|
360 | searching for changes | |||
|
361 | no changes found | |||
|
362 | pushing to ./branch-E-push | |||
|
363 | searching for changes | |||
|
364 | adding changesets | |||
|
365 | adding manifests | |||
|
366 | adding file changes | |||
|
367 | added 1 changesets with 1 changes to 1 files (+1 heads) | |||
|
368 | $ hg log -R ./branch-E-push -T '{desc} {rev}\n' --rev 'sort(all(), "topo")' -G | |||
|
369 | o H 5 | |||
|
370 | | | |||
|
371 | | o E 4 | |||
|
372 | | | | |||
|
373 | | o D 3 | |||
|
374 | |/ | |||
|
375 | o C 2 | |||
|
376 | | | |||
|
377 | o B 1 | |||
|
378 | | | |||
|
379 | o A 0 | |||
|
380 | ||||
|
381 | $ hg log -R ./branch-G-push -T '{desc} {rev}\n' --rev 'sort(all(), "topo")' -G | |||
|
382 | o H 5 | |||
|
383 | | | |||
|
384 | o C 4 | |||
|
385 | | | |||
|
386 | | o G 3 | |||
|
387 | | | | |||
|
388 | | o F 2 | |||
|
389 | |/ | |||
|
390 | o B 1 | |||
|
391 | | | |||
|
392 | o A 0 | |||
|
393 | ||||
|
394 | $ hg log -R ./branch-H-push -T '{desc} {rev}\n' --rev 'sort(all(), "topo")' -G | |||
|
395 | o H 3 | |||
|
396 | | | |||
|
397 | o C 2 | |||
|
398 | | | |||
|
399 | o B 1 | |||
|
400 | | | |||
|
401 | o A 0 | |||
|
402 | ||||
|
403 | $ rm -rf ./*-push | |||
|
404 | ||||
202 |
|
405 | |||
203 | Test with --update |
|
406 | Test with --update | |
204 | ================== |
|
407 | ================== |
General Comments 0
You need to be logged in to leave comments.
Login now