Mercurial > hg
annotate mercurial/templates/monoblue/helptopics.tmpl @ 30308:d500ddae7494
bdiff: don't check border condition in loop
`plast = a + len - 1`. So, this "for" loop iterates from "a" to "plast",
inclusive. So, `p == plast` can only be true on the final iteration
of the loop. So checking for it on every loop iteration is wasteful.
This patch simply decreases the upper bound of the loop by 1 and
adds an explicit check after iteration for the `p == plast` case.
We can't simply add 1 to the initial value for "i" because that
doesn't do the correct thing on empty input strings.
`perfbdiff -m 3041e4d59df2` on the Firefox repo becomes significantly
faster:
! wall 0.072763 comb 0.070000 user 0.070000 sys 0.000000 (best of 100)
! wall 0.053221 comb 0.060000 user 0.060000 sys 0.000000 (best of 100)
For the curious, this code has its origins in 8b067bde6679, which is
the changeset that introduced bdiff.c in 2005.
Also, GNU diffutils is able to perform a similar line-based diff in
under 20ms. So there's likely more perf wins to be found in this code.
One of them is the hashing algorithm. But it looks like mpm spent
some time testing hash collisions in d0c48891dd4a. I'd like to do the
same before switching away from lyhash, just to be on the safe side.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sun, 06 Nov 2016 00:37:50 -0700 |
parents | 6ca3c54f801b |
children | 265196cd7d7f |
rev | line source |
---|---|
8430
8b47efdf40ee
monoblue: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8355
diff
changeset
|
1 {header} |
25686
def530e77b0b
hgweb: fix help pages title in gitweb and monoblue
Anton Shestakov <av6@dwimlabs.net>
parents:
25526
diff
changeset
|
2 <title>Help: {title}</title> |
18526
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
3 <link rel="alternate" type="application/atom+xml" href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/> |
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
4 <link rel="alternate" type="application/rss+xml" href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/> |
8355 | 5 </head> |
6 | |
7 <body> | |
8 <div id="container"> | |
9 <div class="page-header"> | |
18258
bebb05a7e249
hgweb: add a "URL breadcrumb" to the index and repository pages
Angel Ezquerra <angel.ezquerra at gmail.com>
parents:
17286
diff
changeset
|
10 <h1 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb} / help</h1> |
8355 | 11 |
18526
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
12 <form action="{url|urlescape}log"> |
8355 | 13 {sessionvars%hiddenformentry} |
14 <dl class="search"> | |
15 <dt><label>Search: </label></dt> | |
16 <dd><input type="text" name="rev" /></dd> | |
17 </dl> | |
18 </form> | |
19 | |
20 <ul class="page-nav"> | |
18526
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
21 <li><a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a></li> |
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
22 <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a></li> |
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
23 <li><a href="{url|urlescape}changelog{sessionvars%urlparameter}">changelog</a></li> |
25525
bcc02516f384
hgweb: don't point graph links at tip hash where it doesn't make sense
Anton Shestakov <av6@dwimlabs.net>
parents:
24129
diff
changeset
|
24 <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li> |
18526
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
25 <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> |
9409aeaafdc1
hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents:
18258
diff
changeset
|
26 <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> |
25872
00345d10c2cf
monoblue: fix branches link on help topics page
Anton Shestakov <av6@dwimlabs.net>
parents:
25686
diff
changeset
|
27 <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> |
25526
32f76eccbced
hgweb: don't point file links at tip hash where it doesn't make sense
Anton Shestakov <av6@dwimlabs.net>
parents:
25525
diff
changeset
|
28 <li><a href="{url|urlescape}file{sessionvars%urlparameter}">files</a></li> |
27580
34c3ea65d6d1
templates: support linking to main help page
Gregory Szorc <gregory.szorc@gmail.com>
parents:
27578
diff
changeset
|
29 {if(subindex, |
34c3ea65d6d1
templates: support linking to main help page
Gregory Szorc <gregory.szorc@gmail.com>
parents:
27578
diff
changeset
|
30 '<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>', |
34c3ea65d6d1
templates: support linking to main help page
Gregory Szorc <gregory.szorc@gmail.com>
parents:
27578
diff
changeset
|
31 '<li class="current">help</li>' |
34c3ea65d6d1
templates: support linking to main help page
Gregory Szorc <gregory.szorc@gmail.com>
parents:
27578
diff
changeset
|
32 )} |
8355 | 33 </ul> |
34 </div> | |
35 | |
26151
0dda3692ec9b
monoblue: fix page subtitle on help pages
Anton Shestakov <av6@dwimlabs.net>
parents:
25872
diff
changeset
|
36 <h2 class="no-link no-border">help</h2> |
8355 | 37 <table cellspacing="0"> |
30019
6ca3c54f801b
hgweb: make anchor name actually match its href on help index page
Anton Shestakov <av6@dwimlabs.net>
parents:
27580
diff
changeset
|
38 <tr><td colspan="2"><h2><a name="topics" href="#topics">Topics</a></h2></td></tr> |
12666
ead4e21f49f1
web: add a help view for getting hg help output
Augie Fackler <durin42@gmail.com>
parents:
10138
diff
changeset
|
39 {topics % helpentry} |
ead4e21f49f1
web: add a help view for getting hg help output
Augie Fackler <durin42@gmail.com>
parents:
10138
diff
changeset
|
40 |
27578
d35ff0b0d0da
templates: make earlycommands and othercommands optional
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26151
diff
changeset
|
41 {if(earlycommands, ' |
12666
ead4e21f49f1
web: add a help view for getting hg help output
Augie Fackler <durin42@gmail.com>
parents:
10138
diff
changeset
|
42 <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr> |
ead4e21f49f1
web: add a help view for getting hg help output
Augie Fackler <durin42@gmail.com>
parents:
10138
diff
changeset
|
43 {earlycommands % helpentry} |
27578
d35ff0b0d0da
templates: make earlycommands and othercommands optional
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26151
diff
changeset
|
44 ')} |
12666
ead4e21f49f1
web: add a help view for getting hg help output
Augie Fackler <durin42@gmail.com>
parents:
10138
diff
changeset
|
45 |
27578
d35ff0b0d0da
templates: make earlycommands and othercommands optional
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26151
diff
changeset
|
46 {if(othercommands, ' |
12666
ead4e21f49f1
web: add a help view for getting hg help output
Augie Fackler <durin42@gmail.com>
parents:
10138
diff
changeset
|
47 <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr> |
ead4e21f49f1
web: add a help view for getting hg help output
Augie Fackler <durin42@gmail.com>
parents:
10138
diff
changeset
|
48 {othercommands % helpentry} |
27578
d35ff0b0d0da
templates: make earlycommands and othercommands optional
Gregory Szorc <gregory.szorc@gmail.com>
parents:
26151
diff
changeset
|
49 ')} |
8355 | 50 </table> |
51 | |
8430
8b47efdf40ee
monoblue: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
8355
diff
changeset
|
52 {footer} |