Mercurial > hg
changeset 31557:79d98e1b21a7
update: add flag to require update destination
In some mercurial workflows, the default destination for update does not
always work well and can lead to confusing behavior. With this flag enabled,
every update command will require passing an explicit destination, eliminating
this confusion.
author | Ryan McElroy <rmcelroy@fb.com> |
---|---|
date | Tue, 14 Mar 2017 17:43:18 -0700 |
parents | 448acdee9161 |
children | 13dc00c233b7 |
files | mercurial/commands.py mercurial/help/config.txt tests/test-update-names.t |
diffstat | 3 files changed, 30 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Mon Mar 20 11:38:37 2017 +0900 +++ b/mercurial/commands.py Tue Mar 14 17:43:18 2017 -0700 @@ -5349,6 +5349,11 @@ if rev and node: raise error.Abort(_("please specify just one revision")) + if ui.configbool('commands', 'update.requiredest', False): + if not node and not rev and not date: + raise error.Abort(_('you must specify a destination'), + hint=_('for example: hg update ".::"')) + if rev is None or rev == '': rev = node
--- a/mercurial/help/config.txt Mon Mar 20 11:38:37 2017 +0900 +++ b/mercurial/help/config.txt Tue Mar 14 17:43:18 2017 -0700 @@ -414,6 +414,15 @@ a different color mode than the pager (activated via the "pager" extension). +``commands`` +---------- + +``update.requiredest`` + Require that the user pass a destination when running ``hg update``. + For example, ``hg update .::`` will be allowed, but a plain ``hg update`` + will be disallowed. + (default: False) + ``committemplate`` ------------------
--- a/tests/test-update-names.t Mon Mar 20 11:38:37 2017 +0900 +++ b/tests/test-update-names.t Tue Mar 14 17:43:18 2017 -0700 @@ -88,3 +88,19 @@ (consider changing to repo root: $TESTTMP/r1/r4) #endif + + $ cd $TESTTMP + $ cat >> $HGRCPATH <<EOF + > [commands] + > update.requiredest = True + > EOF + $ hg init dest + $ cd dest + $ echo a >> a + $ hg commit -qAm aa + $ hg up + abort: you must specify a destination + (for example: hg update ".::") + [255] + $ hg up . + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved