423 archival.archive(repo, dest, node, kind, not opts.get('no_decode'), |
423 archival.archive(repo, dest, node, kind, not opts.get('no_decode'), |
424 matchfn, prefix, subrepos=opts.get('subrepos')) |
424 matchfn, prefix, subrepos=opts.get('subrepos')) |
425 |
425 |
426 @command('backout', |
426 @command('backout', |
427 [('', 'merge', None, _('merge with old dirstate parent after backout')), |
427 [('', 'merge', None, _('merge with old dirstate parent after backout')), |
|
428 ('', 'commit', None, _('commit if no conflicts were encountered')), |
428 ('', 'parent', '', |
429 ('', 'parent', '', |
429 _('parent to choose when backing out merge (DEPRECATED)'), _('REV')), |
430 _('parent to choose when backing out merge (DEPRECATED)'), _('REV')), |
430 ('r', 'rev', '', _('revision to backout'), _('REV')), |
431 ('r', 'rev', '', _('revision to backout'), _('REV')), |
431 ('e', 'edit', False, _('invoke editor on commit messages')), |
432 ('e', 'edit', False, _('invoke editor on commit messages')), |
432 ] + mergetoolopts + walkopts + commitopts + commitopts2, |
433 ] + mergetoolopts + walkopts + commitopts + commitopts2, |
433 _('[OPTION]... [-r] REV')) |
434 _('[OPTION]... [-r] REV')) |
434 def backout(ui, repo, node=None, rev=None, **opts): |
435 def backout(ui, repo, node=None, rev=None, commit=False, **opts): |
435 '''reverse effect of earlier changeset |
436 '''reverse effect of earlier changeset |
436 |
437 |
437 Prepare a new changeset with the effect of REV undone in the |
438 Prepare a new changeset with the effect of REV undone in the |
438 current working directory. |
439 current working directory. |
439 |
440 |
517 repo.dirstate.endparentchange() |
518 repo.dirstate.endparentchange() |
518 hg._showstats(repo, stats) |
519 hg._showstats(repo, stats) |
519 if stats[3]: |
520 if stats[3]: |
520 repo.ui.status(_("use 'hg resolve' to retry unresolved " |
521 repo.ui.status(_("use 'hg resolve' to retry unresolved " |
521 "file merges\n")) |
522 "file merges\n")) |
522 else: |
523 return 1 |
|
524 elif not commit: |
523 msg = _("changeset %s backed out, " |
525 msg = _("changeset %s backed out, " |
524 "don't forget to commit.\n") |
526 "don't forget to commit.\n") |
525 ui.status(msg % short(node)) |
527 ui.status(msg % short(node)) |
526 return stats[3] > 0 |
528 return 0 |
527 finally: |
529 finally: |
528 ui.setconfig('ui', 'forcemerge', '', '') |
530 ui.setconfig('ui', 'forcemerge', '', '') |
529 else: |
531 else: |
530 hg.clean(repo, node, show_stats=False) |
532 hg.clean(repo, node, show_stats=False) |
531 repo.dirstate.setbranch(branch) |
533 repo.dirstate.setbranch(branch) |