prev: respect `commands.update.check` config option in `hg prev` (issue5808)
`commands.update.check` config option determines what level of checking should
be done when we update to another revision. When we set this config option to
`noconflict`, it updates your working directory to a specified revision only
when there will be no conflicts which is a very nice behavior.
This patch adds logic to respect the config option so that we can have that nice
behavior with `hg prev` too.
It turns out, we just needed to use hg.updatetotally() and add some cases to
check config option.
Right now, we only respect the config if value is set to `noconflict`. Otherwise
we fallback to the default behavior.
This is a part of fixing issue5808. Test changes demonstrate the fix.
--- a/hgext3rd/evolve/__init__.py Sun Jun 03 02:50:55 2018 +0530
+++ b/hgext3rd/evolve/__init__.py Sun Jun 03 02:36:24 2018 +0530
@@ -973,7 +973,7 @@
repo.ui.write(_('hg bookmark %s -r %s;\n')
% (bookmark, target))
else:
- ret = hg.update(repo, target.rev())
+ ret = hg.updatetotally(repo.ui, repo, target.node(), None)
if not ret:
tr = lock = None
try:
@@ -1050,11 +1050,15 @@
if len(wparents) != 1:
raise error.Abort(_('merge in progress'))
if not opts['merge']:
- try:
- cmdutil.bailifchanged(repo)
- except error.Abort as exc:
- exc.hint = _('do you want --merge?')
- raise
+ # we only skip the check if noconflict is set
+ if ui.config('commands', 'update.check') == 'noconflict':
+ pass
+ else:
+ try:
+ cmdutil.bailifchanged(repo)
+ except error.Abort as exc:
+ exc.hint = _('do you want --merge?')
+ raise
displayer = compat.changesetdisplayer(ui, repo,
{'template': shorttemplate})
--- a/tests/test-prev-next.t Sun Jun 03 02:50:55 2018 +0530
+++ b/tests/test-prev-next.t Sun Jun 03 02:36:24 2018 +0530
@@ -397,11 +397,10 @@
$ echo bar > wat
$ hg prev
- abort: uncommitted changes
- (do you want --merge?)
- [255]
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ [1] added foo
$ hg diff
- diff -r ac3de1218820 wat
+ diff -r cf959ce4e1ff wat
--- a/wat Thu Jan 01 00:00:00 1970 +0000
+++ b/wat Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +1,1 @@
@@ -410,10 +409,6 @@
testing for `hg next`
- $ echo hi > wat
- $ hg up .^
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ echo bar > wat
$ hg next
abort: uncommitted changes
(do you want --merge?)