Show More
@@ -5615,6 +5615,9 b' def push(ui, repo, dest=None, **opts):' | |||||
5615 | raise error.Abort( |
|
5615 | raise error.Abort( | |
5616 | _(b'default push revset for path evaluates to an empty set') |
|
5616 | _(b'default push revset for path evaluates to an empty set') | |
5617 | ) |
|
5617 | ) | |
|
5618 | elif ui.configbool(b'commands', b'push.require-revs'): | |||
|
5619 | raise error.Abort(_(b'no revisions specified to push'), | |||
|
5620 | hint=_(b'did you mean "hg push -r ."?')) | |||
5618 |
|
5621 | |||
5619 | repo._subtoppath = dest |
|
5622 | repo._subtoppath = dest | |
5620 | try: |
|
5623 | try: |
@@ -228,6 +228,9 b' coreconfigitem(' | |||||
228 | b'commands', b'grep.all-files', default=False, experimental=True, |
|
228 | b'commands', b'grep.all-files', default=False, experimental=True, | |
229 | ) |
|
229 | ) | |
230 | coreconfigitem( |
|
230 | coreconfigitem( | |
|
231 | b'commands', b'push.require-revs', default=False, | |||
|
232 | ) | |||
|
233 | coreconfigitem( | |||
231 | b'commands', b'resolve.confirm', default=False, |
|
234 | b'commands', b'resolve.confirm', default=False, | |
232 | ) |
|
235 | ) | |
233 | coreconfigitem( |
|
236 | coreconfigitem( |
@@ -442,6 +442,14 b' effect and style see :hg:`help color`.' | |||||
442 | Show status of files in the working directory after successful commit. |
|
442 | Show status of files in the working directory after successful commit. | |
443 | (default: False) |
|
443 | (default: False) | |
444 |
|
444 | |||
|
445 | ``push.require-revs`` | |||
|
446 | Require revisions to push be specified using one or more mechanisms such as | |||
|
447 | specifying them positionally on the command line, using ``-r``, ``-b``, | |||
|
448 | and/or ``-B`` on the command line, or using ``paths.<path>:pushrev`` in the | |||
|
449 | configuration. If this is enabled and revisions are not specified, the | |||
|
450 | command aborts. | |||
|
451 | (default: False) | |||
|
452 | ||||
445 | ``resolve.confirm`` |
|
453 | ``resolve.confirm`` | |
446 | Confirm before performing action if no filename is passed. |
|
454 | Confirm before performing action if no filename is passed. | |
447 | (default: False) |
|
455 | (default: False) |
@@ -348,3 +348,55 b' SEC: check for unsafe ssh url' | |||||
348 | [255] |
|
348 | [255] | |
349 |
|
349 | |||
350 | $ [ ! -f owned ] || echo 'you got owned' |
|
350 | $ [ ! -f owned ] || echo 'you got owned' | |
|
351 | ||||
|
352 | Test `commands.push.require-revs` | |||
|
353 | --------------------------------- | |||
|
354 | ||||
|
355 | $ hg clone -q test-revflag test-require-revs-source | |||
|
356 | $ hg init test-require-revs-dest | |||
|
357 | $ cd test-require-revs-source | |||
|
358 | $ cat >> .hg/hgrc << EOF | |||
|
359 | > [paths] | |||
|
360 | > default = ../test-require-revs-dest | |||
|
361 | > [commands] | |||
|
362 | > push.require-revs=1 | |||
|
363 | > EOF | |||
|
364 | $ hg push | |||
|
365 | pushing to $TESTTMP/test-require-revs-dest | |||
|
366 | abort: no revisions specified to push | |||
|
367 | (did you mean "hg push -r ."?) | |||
|
368 | [255] | |||
|
369 | $ hg push -r 0 | |||
|
370 | pushing to $TESTTMP/test-require-revs-dest | |||
|
371 | searching for changes | |||
|
372 | adding changesets | |||
|
373 | adding manifests | |||
|
374 | adding file changes | |||
|
375 | added 1 changesets with 1 changes to 1 files | |||
|
376 | $ hg bookmark -r 0 push-this-bookmark | |||
|
377 | (test that -B (bookmark) works for specifying "revs") | |||
|
378 | $ hg push -B push-this-bookmark | |||
|
379 | pushing to $TESTTMP/test-require-revs-dest | |||
|
380 | searching for changes | |||
|
381 | no changes found | |||
|
382 | exporting bookmark push-this-bookmark | |||
|
383 | [1] | |||
|
384 | (test that -b (branch) works for specifying "revs") | |||
|
385 | $ hg push -b default | |||
|
386 | pushing to $TESTTMP/test-require-revs-dest | |||
|
387 | searching for changes | |||
|
388 | abort: push creates new remote head [0-9a-f]+! (re) | |||
|
389 | (merge or see 'hg help push' for details about pushing new heads) | |||
|
390 | [255] | |||
|
391 | (demonstrate that even though we don't have anything to exchange, we're still | |||
|
392 | showing the error) | |||
|
393 | $ hg push | |||
|
394 | pushing to $TESTTMP/test-require-revs-dest | |||
|
395 | abort: no revisions specified to push | |||
|
396 | (did you mean "hg push -r ."?) | |||
|
397 | [255] | |||
|
398 | $ hg push --config paths.default:pushrev=0 | |||
|
399 | pushing to $TESTTMP/test-require-revs-dest | |||
|
400 | searching for changes | |||
|
401 | no changes found | |||
|
402 | [1] |
General Comments 0
You need to be logged in to leave comments.
Login now