diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -182,7 +182,7 @@ def archive(ui, repo, dest, **opts): archival.archive(repo, dest, node, kind, not opts['no_decode'], matchfn, prefix) -def backout(ui, repo, rev, **opts): +def backout(ui, repo, node=None, rev=None, **opts): '''reverse effect of earlier changeset Commit the backed out changes as a new changeset. The new @@ -199,6 +199,11 @@ def backout(ui, repo, rev, **opts): changeset afterwards. This saves you from doing the merge by hand. The result of this merge is not committed, as for a normal merge.''' + if rev and node: + raise util.Abort(_("please specify just one revision")) + + if not rev: + rev = node bail_if_changed(repo) op1, op2 = repo.dirstate.parents() @@ -1511,10 +1516,10 @@ def import_(ui, repo, patch1, *patches, if pf == '-': ui.status(_("applying patch from stdin\n")) - tmpname, message, user, date, nodeid, p1, p2 = patch.extract(ui, sys.stdin) + tmpname, message, user, date, branch, nodeid, p1, p2 = patch.extract(ui, sys.stdin) else: ui.status(_("applying %s\n") % p) - tmpname, message, user, date, nodeid, p1, p2 = patch.extract(ui, file(pf)) + tmpname, message, user, date, branch, nodeid, p1, p2 = patch.extract(ui, file(pf)) if tmpname is None: raise util.Abort(_('no diffs found')) @@ -1542,6 +1547,7 @@ def import_(ui, repo, patch1, *patches, if p1 != wp[0].node(): hg.clean(repo, p1, wlock=wlock) repo.dirstate.setparents(p1, p2) + repo.dirstate.setbranch(branch or 'default') elif p2: try: p1 = repo.lookup(p1) @@ -1826,7 +1832,7 @@ def manifest(ui, repo, rev=None): ui.write("%3s " % (m.execf(f) and "755" or "644")) ui.write("%s\n" % f) -def merge(ui, repo, node=None, force=None): +def merge(ui, repo, node=None, force=None, rev=None): """merge working directory with another revision Merge the contents of the current working directory and the @@ -1840,6 +1846,12 @@ def merge(ui, repo, node=None, force=Non revision to merge with must be provided. """ + if rev and node: + raise util.Abort(_("please specify just one revision")) + + if not node: + node = rev + if not node: heads = repo.heads() if len(heads) > 2: @@ -2552,7 +2564,7 @@ def unbundle(ui, repo, fname, **opts): modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname) return postincoming(ui, repo, modheads, opts['update']) -def update(ui, repo, node=None, clean=False, date=None): +def update(ui, repo, node=None, rev=None, clean=False, date=None): """update working directory Update the working directory to the specified revision, or the @@ -2568,15 +2580,21 @@ def update(ui, repo, node=None, clean=Fa By default, update will refuse to run if doing so would require discarding local changes. """ + if rev and node: + raise util.Abort(_("please specify just one revision")) + + if not rev: + rev = node + if date: - if node: + if rev: raise util.Abort(_("you can't specify a revision and a date")) - node = cmdutil.finddate(ui, repo, date) + rev = cmdutil.finddate(ui, repo, date) if clean: - return hg.clean(repo, node) + return hg.clean(repo, rev) else: - return hg.update(repo, node) + return hg.update(repo, rev) def verify(ui, repo): """verify the integrity of the repository @@ -2676,8 +2694,9 @@ table = { ('d', 'date', '', _('record datecode as commit date')), ('', 'parent', '', _('parent to choose when backing out merge')), ('u', 'user', '', _('record user as committer')), + ('r', 'rev', '', _('revision to backout')), ] + walkopts + commitopts, - _('hg backout [OPTION]... REV')), + _('hg backout [OPTION]... [-r] REV')), "branch": (branch, [('f', 'force', None, _('set branch name even if it shadows an existing branch'))], @@ -2852,8 +2871,10 @@ table = { "manifest": (manifest, [], _('hg manifest [REV]')), "^merge": (merge, - [('f', 'force', None, _('force a merge with outstanding changes'))], - _('hg merge [-f] [REV]')), + [('f', 'force', None, _('force a merge with outstanding changes')), + ('r', 'rev', '', _('revision to merge')), + ], + _('hg merge [-f] [[-r] REV]')), "outgoing|out": (outgoing, [('M', 'no-merges', None, _('do not show merges')), ('f', 'force', None, @@ -2984,8 +3005,9 @@ table = { "^update|up|checkout|co": (update, [('C', 'clean', None, _('overwrite locally modified files')), - ('d', 'date', '', _('tipmost revision matching date'))], - _('hg update [-C] [-d DATE] [REV]')), + ('d', 'date', '', _('tipmost revision matching date')), + ('r', 'rev', '', _('revision'))], + _('hg update [-C] [-d DATE] [[-r] REV]')), "verify": (verify, [], _('hg verify')), "version": (version_, [], _('hg version')), }