mercurial/templates/paper/diffstat.tmpl
author Pierre-Yves David <pierre-yves.david@fb.com>
Tue, 16 Jun 2015 19:47:46 -0700
changeset 25620 5f87f2305ad0
parent 19455 c229a5e7511e
permissions -rw-r--r--
revset: translate node directly with changelog in 'head' Using 'repo[X]' is much slower because it creates a 'changectx' object and goes though multiple layers of code to do so. It is also error prone if there is tags, bookmarks, branch or other names that could map to a node hash and take precedence (user are wicked). This provides a significant performance boost on repository with a lot of heads. Benchmark result for a repo with 1181 heads. revset: head() plain min last reverse 0) 0.014853 0.014371 0.014350 0.015161 1) 0.001402 9% 0.000975 6% 0.000874 6% 0.001415 9% revset: head() - public() plain min last reverse 0) 0.015121 0.014420 0.014560 0.015028 1) 0.001674 11% 0.001109 7% 0.000980 6% 0.001693 11% revset: draft() and head() plain min last reverse 0) 0.015976 0.014490 0.014214 0.015892 1) 0.002335 14% 0.001018 7% 0.000887 6% 0.002340 14% The speed up is visible even when other more costly revset are in use revset: head() and author("mpm") plain min last reverse 0) 0.105419 0.090046 0.017169 0.108180 1) 0.090721 86% 0.077602 86% 0.003556 20% 0.093324 86%

  <tr>
    <td class="diffstat-file"><a href="#l{fileno}.1">{file|escape}</a></td>
    <td class="diffstat-total" align="right">{total}</td>
    <td class="diffstat-graph">
      <span class="diffstat-add" style="width:{addpct}%;">&nbsp;</span>
      <span class="diffstat-remove" style="width:{removepct}%;">&nbsp;</span>
    </td>
  </tr>