Details
Details
- Reviewers
- None
- Group Reviewers
hg-reviewers - Commits
- rHG0d6d0aa3c4bf: backout: use context manager for config override
Diff Detail
Diff Detail
- Repository
- rHG Mercurial
- Lint
Lint Skipped - Unit
Unit Tests Skipped
hg-reviewers |
Lint Skipped |
Unit Tests Skipped |
Path | Packages | |||
---|---|---|---|---|
M | mercurial/commands.py (14 lines) |
Commit | Parents | Author | Summary | Date |
---|---|---|---|---|
Martin von Zweigbergk | Jun 14 2018, 6:26 PM |
Status | Author | Revision | |
---|---|---|---|
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz |
# the backout should appear on the same branch | # the backout should appear on the same branch | ||||
branch = repo.dirstate.branch() | branch = repo.dirstate.branch() | ||||
bheads = repo.branchheads(branch) | bheads = repo.branchheads(branch) | ||||
rctx = scmutil.revsingle(repo, hex(parent)) | rctx = scmutil.revsingle(repo, hex(parent)) | ||||
if not opts.get('merge') and op1 != node: | if not opts.get('merge') and op1 != node: | ||||
dsguard = dirstateguard.dirstateguard(repo, 'backout') | dsguard = dirstateguard.dirstateguard(repo, 'backout') | ||||
try: | try: | ||||
ui.setconfig('ui', 'forcemerge', opts.get('tool', ''), | overrides = {('ui', 'forcemerge'): opts.get('tool', '')} | ||||
'backout') | with ui.configoverride(overrides, 'backout'): | ||||
stats = mergemod.update(repo, parent, True, True, node, False) | stats = mergemod.update(repo, parent, True, True, node, False) | ||||
repo.setparents(op1, op2) | repo.setparents(op1, op2) | ||||
dsguard.close() | dsguard.close() | ||||
hg._showstats(repo, stats) | hg._showstats(repo, stats) | ||||
if stats.unresolvedcount: | if stats.unresolvedcount: | ||||
repo.ui.status(_("use 'hg resolve' to retry unresolved " | repo.ui.status(_("use 'hg resolve' to retry unresolved " | ||||
"file merges\n")) | "file merges\n")) | ||||
return 1 | return 1 | ||||
finally: | finally: | ||||
ui.setconfig('ui', 'forcemerge', '', '') | |||||
lockmod.release(dsguard) | lockmod.release(dsguard) | ||||
else: | else: | ||||
hg.clean(repo, node, show_stats=False) | hg.clean(repo, node, show_stats=False) | ||||
repo.dirstate.setbranch(branch) | repo.dirstate.setbranch(branch) | ||||
cmdutil.revert(ui, repo, rctx, repo.dirstate.parents()) | cmdutil.revert(ui, repo, rctx, repo.dirstate.parents()) | ||||
if opts.get('no_commit'): | if opts.get('no_commit'): | ||||
msg = _("changeset %s backed out, " | msg = _("changeset %s backed out, " | ||||
def nice(node): | def nice(node): | ||||
return '%d:%s' % (repo.changelog.rev(node), short(node)) | return '%d:%s' % (repo.changelog.rev(node), short(node)) | ||||
ui.status(_('changeset %s backs out changeset %s\n') % | ui.status(_('changeset %s backs out changeset %s\n') % | ||||
(nice(repo.changelog.tip()), nice(node))) | (nice(repo.changelog.tip()), nice(node))) | ||||
if opts.get('merge') and op1 != node: | if opts.get('merge') and op1 != node: | ||||
hg.clean(repo, op1, show_stats=False) | hg.clean(repo, op1, show_stats=False) | ||||
ui.status(_('merging with changeset %s\n') | ui.status(_('merging with changeset %s\n') | ||||
% nice(repo.changelog.tip())) | % nice(repo.changelog.tip())) | ||||
try: | overrides = {('ui', 'forcemerge'): opts.get('tool', '')} | ||||
ui.setconfig('ui', 'forcemerge', opts.get('tool', ''), | with ui.configoverride(overrides, 'backout'): | ||||
'backout') | |||||
return hg.merge(repo, hex(repo.changelog.tip())) | return hg.merge(repo, hex(repo.changelog.tip())) | ||||
finally: | |||||
ui.setconfig('ui', 'forcemerge', '', '') | |||||
return 0 | return 0 | ||||
@command('bisect', | @command('bisect', | ||||
[('r', 'reset', False, _('reset bisect state')), | [('r', 'reset', False, _('reset bisect state')), | ||||
('g', 'good', False, _('mark changeset good')), | ('g', 'good', False, _('mark changeset good')), | ||||
('b', 'bad', False, _('mark changeset bad')), | ('b', 'bad', False, _('mark changeset bad')), | ||||
('s', 'skip', False, _('skip testing changeset')), | ('s', 'skip', False, _('skip testing changeset')), | ||||
('e', 'extend', False, _('extend the bisect range')), | ('e', 'extend', False, _('extend the bisect range')), |