362 archival.archive(repo, dest, node, kind, not opts.get('no_decode'), |
362 archival.archive(repo, dest, node, kind, not opts.get('no_decode'), |
363 matchfn, prefix, subrepos=opts.get('subrepos')) |
363 matchfn, prefix, subrepos=opts.get('subrepos')) |
364 |
364 |
365 @command('backout', |
365 @command('backout', |
366 [('', 'merge', None, _('merge with old dirstate parent after backout')), |
366 [('', 'merge', None, _('merge with old dirstate parent after backout')), |
367 ('', 'parent', '', _('parent to choose when backing out merge'), _('REV')), |
367 ('', 'parent', '', |
|
368 _('parent to choose when backing out merge (DEPRECATED)'), _('REV')), |
368 ('r', 'rev', '', _('revision to backout'), _('REV')), |
369 ('r', 'rev', '', _('revision to backout'), _('REV')), |
369 ] + mergetoolopts + walkopts + commitopts + commitopts2, |
370 ] + mergetoolopts + walkopts + commitopts + commitopts2, |
370 _('[OPTION]... [-r] REV')) |
371 _('[OPTION]... [-r] REV')) |
371 def backout(ui, repo, node=None, rev=None, **opts): |
372 def backout(ui, repo, node=None, rev=None, **opts): |
372 '''reverse effect of earlier changeset |
373 '''reverse effect of earlier changeset |
422 p1, p2 = repo.changelog.parents(node) |
423 p1, p2 = repo.changelog.parents(node) |
423 if p1 == nullid: |
424 if p1 == nullid: |
424 raise util.Abort(_('cannot backout a change with no parents')) |
425 raise util.Abort(_('cannot backout a change with no parents')) |
425 if p2 != nullid: |
426 if p2 != nullid: |
426 if not opts.get('parent'): |
427 if not opts.get('parent'): |
427 raise util.Abort(_('cannot backout a merge changeset without ' |
428 raise util.Abort(_('cannot backout a merge changeset')) |
428 '--parent')) |
|
429 p = repo.lookup(opts['parent']) |
429 p = repo.lookup(opts['parent']) |
430 if p not in (p1, p2): |
430 if p not in (p1, p2): |
431 raise util.Abort(_('%s is not a parent of %s') % |
431 raise util.Abort(_('%s is not a parent of %s') % |
432 (short(p), short(node))) |
432 (short(p), short(node))) |
433 parent = p |
433 parent = p |