mirror of
https://github.com/redmine/redmine.git
synced 2025-11-06 13:25:44 +01:00
Mercurial 4.6 compatibility (#28725).
Patch by Marc Schlaich and Frédéric Fondement. git-svn-id: http://svn.redmine.org/redmine/trunk@17351 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -54,6 +54,12 @@ command = cmdutil.command(cmdtable)
|
|||||||
_x = cgi.escape
|
_x = cgi.escape
|
||||||
_u = lambda s: cgi.escape(urllib.quote(s))
|
_u = lambda s: cgi.escape(urllib.quote(s))
|
||||||
|
|
||||||
|
def _changectx(repo, rev):
|
||||||
|
if hasattr(repo, 'changectx'):
|
||||||
|
return repo.changectx(rev)
|
||||||
|
else:
|
||||||
|
return repo[rev]
|
||||||
|
|
||||||
def _tip(ui, repo):
|
def _tip(ui, repo):
|
||||||
# see mercurial/commands.py:tip
|
# see mercurial/commands.py:tip
|
||||||
def tiprev():
|
def tiprev():
|
||||||
@@ -61,7 +67,7 @@ def _tip(ui, repo):
|
|||||||
return len(repo) - 1
|
return len(repo) - 1
|
||||||
except TypeError: # Mercurial < 1.1
|
except TypeError: # Mercurial < 1.1
|
||||||
return repo.changelog.count() - 1
|
return repo.changelog.count() - 1
|
||||||
tipctx = repo.changectx(tiprev())
|
tipctx = _changectx(repo, tiprev())
|
||||||
ui.write('<tip revision="%d" node="%s"/>\n'
|
ui.write('<tip revision="%d" node="%s"/>\n'
|
||||||
% (tipctx.rev(), _x(node.hex(tipctx.node()))))
|
% (tipctx.rev(), _x(node.hex(tipctx.node()))))
|
||||||
|
|
||||||
@@ -94,13 +100,18 @@ def _branches(ui, repo):
|
|||||||
return repo.branchheads(branch, closed=False)
|
return repo.branchheads(branch, closed=False)
|
||||||
except TypeError: # Mercurial < 1.2
|
except TypeError: # Mercurial < 1.2
|
||||||
return repo.branchheads(branch)
|
return repo.branchheads(branch)
|
||||||
|
def lookup(rev, n):
|
||||||
|
try:
|
||||||
|
return repo.lookup(rev)
|
||||||
|
except RuntimeError:
|
||||||
|
return n
|
||||||
for t, n, r in sorted(iterbranches(), key=lambda e: e[2], reverse=True):
|
for t, n, r in sorted(iterbranches(), key=lambda e: e[2], reverse=True):
|
||||||
if repo.lookup(r) in branchheads(t):
|
if lookup(r, n) in branchheads(t):
|
||||||
ui.write('<branch revision="%d" node="%s" name="%s"/>\n'
|
ui.write('<branch revision="%d" node="%s" name="%s"/>\n'
|
||||||
% (r, _x(node.hex(n)), _x(t)))
|
% (r, _x(node.hex(n)), _x(t)))
|
||||||
|
|
||||||
def _manifest(ui, repo, path, rev):
|
def _manifest(ui, repo, path, rev):
|
||||||
ctx = repo.changectx(rev)
|
ctx = _changectx(repo, rev)
|
||||||
ui.write('<manifest revision="%d" path="%s">\n'
|
ui.write('<manifest revision="%d" path="%s">\n'
|
||||||
% (ctx.rev(), _u(path)))
|
% (ctx.rev(), _u(path)))
|
||||||
|
|
||||||
@@ -155,7 +166,7 @@ def rhdiff(ui, repo, *pats, **opts):
|
|||||||
"""diff repository (or selected files)"""
|
"""diff repository (or selected files)"""
|
||||||
change = opts.pop('change', None)
|
change = opts.pop('change', None)
|
||||||
if change: # add -c option for Mercurial<1.1
|
if change: # add -c option for Mercurial<1.1
|
||||||
base = repo.changectx(change).parents()[0].rev()
|
base = _changectx(repo, change).parents()[0].rev()
|
||||||
opts['rev'] = [str(base), change]
|
opts['rev'] = [str(base), change]
|
||||||
opts['nodates'] = True
|
opts['nodates'] = True
|
||||||
return commands.diff(ui, repo, *map(urllib.unquote_plus, pats), **opts)
|
return commands.diff(ui, repo, *map(urllib.unquote_plus, pats), **opts)
|
||||||
|
|||||||
Reference in New Issue
Block a user