1
0
mirror of https://github.com/golang/go synced 2024-11-24 18:30:16 -07:00

codereview: fix for Mercurial 2.1

Mercurial: the Python of version control systems.
Python: the Mercurial of programming languages.

R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5777066
This commit is contained in:
Russ Cox 2012-03-12 14:39:44 -04:00
parent 4084f08401
commit bd71072eee

View File

@ -1247,9 +1247,28 @@ def MatchAt(ctx, pats=None, opts=None, globbed=False, default='relpath'):
####################################################################### #######################################################################
# Commands added by code review extension. # Commands added by code review extension.
# As of Mercurial 2.1 the commands are all required to return integer
# exit codes, whereas earlier versions allowed returning arbitrary strings
# to be printed as errors. We wrap the old functions to make sure we
# always return integer exit codes now. Otherwise Mercurial dies
# with a TypeError traceback (unsupported operand type(s) for &: 'str' and 'int').
# Introduce a Python decorator to convert old functions to the new
# stricter convention.
def hgcommand(f):
def wrapped(ui, repo, *pats, **opts):
err = f(ui, repo, *pats, **opts)
if type(err) is int:
return err
if not err:
return 0
raise hg_util.Abort(err)
return wrapped
####################################################################### #######################################################################
# hg change # hg change
@hgcommand
def change(ui, repo, *pats, **opts): def change(ui, repo, *pats, **opts):
"""create, edit or delete a change list """create, edit or delete a change list
@ -1363,6 +1382,7 @@ def change(ui, repo, *pats, **opts):
####################################################################### #######################################################################
# hg code-login (broken?) # hg code-login (broken?)
@hgcommand
def code_login(ui, repo, **opts): def code_login(ui, repo, **opts):
"""log in to code review server """log in to code review server
@ -1378,6 +1398,7 @@ def code_login(ui, repo, **opts):
# hg clpatch / undo / release-apply / download # hg clpatch / undo / release-apply / download
# All concerned with applying or unapplying patches to the repository. # All concerned with applying or unapplying patches to the repository.
@hgcommand
def clpatch(ui, repo, clname, **opts): def clpatch(ui, repo, clname, **opts):
"""import a patch from the code review server """import a patch from the code review server
@ -1392,6 +1413,7 @@ def clpatch(ui, repo, clname, **opts):
return "cannot run hg clpatch outside default branch" return "cannot run hg clpatch outside default branch"
return clpatch_or_undo(ui, repo, clname, opts, mode="clpatch") return clpatch_or_undo(ui, repo, clname, opts, mode="clpatch")
@hgcommand
def undo(ui, repo, clname, **opts): def undo(ui, repo, clname, **opts):
"""undo the effect of a CL """undo the effect of a CL
@ -1403,6 +1425,7 @@ def undo(ui, repo, clname, **opts):
return "cannot run hg undo outside default branch" return "cannot run hg undo outside default branch"
return clpatch_or_undo(ui, repo, clname, opts, mode="undo") return clpatch_or_undo(ui, repo, clname, opts, mode="undo")
@hgcommand
def release_apply(ui, repo, clname, **opts): def release_apply(ui, repo, clname, **opts):
"""apply a CL to the release branch """apply a CL to the release branch
@ -1655,6 +1678,7 @@ def lineDelta(deltas, n, len):
d = newdelta d = newdelta
return d, "" return d, ""
@hgcommand
def download(ui, repo, clname, **opts): def download(ui, repo, clname, **opts):
"""download a change from the code review server """download a change from the code review server
@ -1674,6 +1698,7 @@ def download(ui, repo, clname, **opts):
####################################################################### #######################################################################
# hg file # hg file
@hgcommand
def file(ui, repo, clname, pat, *pats, **opts): def file(ui, repo, clname, pat, *pats, **opts):
"""assign files to or remove files from a change list """assign files to or remove files from a change list
@ -1739,6 +1764,7 @@ def file(ui, repo, clname, pat, *pats, **opts):
####################################################################### #######################################################################
# hg gofmt # hg gofmt
@hgcommand
def gofmt(ui, repo, *pats, **opts): def gofmt(ui, repo, *pats, **opts):
"""apply gofmt to modified files """apply gofmt to modified files
@ -1772,6 +1798,7 @@ def gofmt_required(files):
####################################################################### #######################################################################
# hg mail # hg mail
@hgcommand
def mail(ui, repo, *pats, **opts): def mail(ui, repo, *pats, **opts):
"""mail a change for review """mail a change for review
@ -1804,18 +1831,21 @@ def mail(ui, repo, *pats, **opts):
####################################################################### #######################################################################
# hg p / hg pq / hg ps / hg pending # hg p / hg pq / hg ps / hg pending
@hgcommand
def ps(ui, repo, *pats, **opts): def ps(ui, repo, *pats, **opts):
"""alias for hg p --short """alias for hg p --short
""" """
opts['short'] = True opts['short'] = True
return pending(ui, repo, *pats, **opts) return pending(ui, repo, *pats, **opts)
@hgcommand
def pq(ui, repo, *pats, **opts): def pq(ui, repo, *pats, **opts):
"""alias for hg p --quick """alias for hg p --quick
""" """
opts['quick'] = True opts['quick'] = True
return pending(ui, repo, *pats, **opts) return pending(ui, repo, *pats, **opts)
@hgcommand
def pending(ui, repo, *pats, **opts): def pending(ui, repo, *pats, **opts):
"""show pending changes """show pending changes
@ -1851,6 +1881,7 @@ def pending(ui, repo, *pats, **opts):
def need_sync(): def need_sync():
raise hg_util.Abort("local repository out of date; must sync before submit") raise hg_util.Abort("local repository out of date; must sync before submit")
@hgcommand
def submit(ui, repo, *pats, **opts): def submit(ui, repo, *pats, **opts):
"""submit change to remote repository """submit change to remote repository
@ -1983,6 +2014,7 @@ def submit(ui, repo, *pats, **opts):
####################################################################### #######################################################################
# hg sync # hg sync
@hgcommand
def sync(ui, repo, **opts): def sync(ui, repo, **opts):
"""synchronize with remote repository """synchronize with remote repository
@ -2036,6 +2068,7 @@ def sync_changes(ui, repo):
####################################################################### #######################################################################
# hg upload # hg upload
@hgcommand
def upload(ui, repo, name, **opts): def upload(ui, repo, name, **opts):
"""upload diffs to the code review server """upload diffs to the code review server