view mercurial/templates/spartan/branches.tmpl @ 34087:5361771f9714

wrapfunction: use functools.partial if possible Every `extensions.bind` call inserts a frame in traceback: ... in closure return func(*(args + a), **kw) which makes traceback noisy. The Python stdlib has a `functools.partial` which is backed by C code and does not pollute traceback. However it does not support instancemethod and sets `args` attribute which could be problematic for alias handling. This patch makes `wrapfunction` use `functools.partial` if we are wrapping a function directly exported by a module (so it's impossible to be a class or instance method), and special handles `wrapfunction` results so alias handling code could handle `args` just fine. As an example, `hg rebase -s . -d . --traceback` got 6 lines removed in my setup: File "hg/mercurial/dispatch.py", line 898, in _dispatch cmdpats, cmdoptions) -File "hg/mercurial/extensions.py", line 333, in closure - return func(*(args + a), **kw) File "hg/hgext/journal.py", line 84, in runcommand return orig(lui, repo, cmd, fullargs, *args) -File "hg/mercurial/extensions.py", line 333, in closure - return func(*(args + a), **kw) File "fb-hgext/hgext3rd/fbamend/hiddenoverride.py", line 119, in runcommand result = orig(lui, repo, cmd, fullargs, *args) File "hg/mercurial/dispatch.py", line 660, in runcommand ret = _runcommand(ui, options, cmd, d) -File "hg/mercurial/extensions.py", line 333, in closure - return func(*(args + a), **kw) File "hg/hgext/pager.py", line 69, in pagecmd return orig(ui, options, cmd, cmdfunc) .... Differential Revision: https://phab.mercurial-scm.org/D632
author Jun Wu <quark@fb.com>
date Tue, 05 Sep 2017 13:37:36 -0700
parents 32f76eccbced
children
line wrap: on
line source

{header}
<title>{repo|escape}: branches</title>
<link rel="alternate" type="application/atom+xml"
   href="{url|urlescape}atom-branches" title="Atom feed for {repo|escape}: branches">
<link rel="alternate" type="application/rss+xml"
   href="{url|urlescape}rss-branches" title="RSS feed for {repo|escape}: branches">
</head>
<body>

<div class="buttons">
<a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a>
<a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a>
<a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a>
<a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a>
<a href="{url|urlescape}file{sessionvars%urlparameter}">files</a>
<a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
<a type="application/rss+xml" href="{url|urlescape}rss-branches">rss</a>
<a type="application/atom+xml" href="{url|urlescape}atom-branches">atom</a>
</div>

<h2><a href="/">Mercurial</a> {pathdef%breadcrumb} / branches</h2>

<ul id="tagEntries">
{entries%branchentry}
</ul>

{footer}