Mercurial > public > mercurial-scm > hg
comparison mercurial/commands.py @ 16470:b2e1da5db6df stable
commands: add missing wlock to backout
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Thu, 19 Apr 2012 17:59:23 +0300 |
parents | 55982f62651f |
children | 85c7602e283a |
comparison
equal
deleted
inserted
replaced
16469:dd68c972d089 | 16470:b2e1da5db6df |
---|---|
447 if opts.get('parent'): | 447 if opts.get('parent'): |
448 raise util.Abort(_('cannot use --parent on non-merge changeset')) | 448 raise util.Abort(_('cannot use --parent on non-merge changeset')) |
449 parent = p1 | 449 parent = p1 |
450 | 450 |
451 # the backout should appear on the same branch | 451 # the backout should appear on the same branch |
452 branch = repo.dirstate.branch() | 452 wlock = repo.wlock() |
453 hg.clean(repo, node, show_stats=False) | 453 try: |
454 repo.dirstate.setbranch(branch) | 454 branch = repo.dirstate.branch() |
455 revert_opts = opts.copy() | 455 hg.clean(repo, node, show_stats=False) |
456 revert_opts['date'] = None | 456 repo.dirstate.setbranch(branch) |
457 revert_opts['all'] = True | 457 revert_opts = opts.copy() |
458 revert_opts['rev'] = hex(parent) | 458 revert_opts['date'] = None |
459 revert_opts['no_backup'] = None | 459 revert_opts['all'] = True |
460 revert(ui, repo, **revert_opts) | 460 revert_opts['rev'] = hex(parent) |
461 if not opts.get('merge') and op1 != node: | 461 revert_opts['no_backup'] = None |
462 try: | 462 revert(ui, repo, **revert_opts) |
463 ui.setconfig('ui', 'forcemerge', opts.get('tool', '')) | 463 if not opts.get('merge') and op1 != node: |
464 return hg.update(repo, op1) | 464 try: |
465 finally: | 465 ui.setconfig('ui', 'forcemerge', opts.get('tool', '')) |
466 ui.setconfig('ui', 'forcemerge', '') | 466 return hg.update(repo, op1) |
467 | 467 finally: |
468 commit_opts = opts.copy() | 468 ui.setconfig('ui', 'forcemerge', '') |
469 commit_opts['addremove'] = False | 469 |
470 if not commit_opts['message'] and not commit_opts['logfile']: | 470 commit_opts = opts.copy() |
471 # we don't translate commit messages | 471 commit_opts['addremove'] = False |
472 commit_opts['message'] = "Backed out changeset %s" % short(node) | 472 if not commit_opts['message'] and not commit_opts['logfile']: |
473 commit_opts['force_editor'] = True | 473 # we don't translate commit messages |
474 commit(ui, repo, **commit_opts) | 474 commit_opts['message'] = "Backed out changeset %s" % short(node) |
475 def nice(node): | 475 commit_opts['force_editor'] = True |
476 return '%d:%s' % (repo.changelog.rev(node), short(node)) | 476 commit(ui, repo, **commit_opts) |
477 ui.status(_('changeset %s backs out changeset %s\n') % | 477 def nice(node): |
478 (nice(repo.changelog.tip()), nice(node))) | 478 return '%d:%s' % (repo.changelog.rev(node), short(node)) |
479 if opts.get('merge') and op1 != node: | 479 ui.status(_('changeset %s backs out changeset %s\n') % |
480 hg.clean(repo, op1, show_stats=False) | 480 (nice(repo.changelog.tip()), nice(node))) |
481 ui.status(_('merging with changeset %s\n') | 481 if opts.get('merge') and op1 != node: |
482 % nice(repo.changelog.tip())) | 482 hg.clean(repo, op1, show_stats=False) |
483 try: | 483 ui.status(_('merging with changeset %s\n') |
484 ui.setconfig('ui', 'forcemerge', opts.get('tool', '')) | 484 % nice(repo.changelog.tip())) |
485 return hg.merge(repo, hex(repo.changelog.tip())) | 485 try: |
486 finally: | 486 ui.setconfig('ui', 'forcemerge', opts.get('tool', '')) |
487 ui.setconfig('ui', 'forcemerge', '') | 487 return hg.merge(repo, hex(repo.changelog.tip())) |
488 finally: | |
489 ui.setconfig('ui', 'forcemerge', '') | |
490 finally: | |
491 wlock.release() | |
488 return 0 | 492 return 0 |
489 | 493 |
490 @command('bisect', | 494 @command('bisect', |
491 [('r', 'reset', False, _('reset bisect state')), | 495 [('r', 'reset', False, _('reset bisect state')), |
492 ('g', 'good', False, _('mark changeset good')), | 496 ('g', 'good', False, _('mark changeset good')), |