Fri, 06 Sep 2013 13:30:58 +0400 hgweb: add appendFormatHTML javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19743
hgweb: add appendFormatHTML javascript function This is a convenient helper function to append some formatted HTML markup to a DOM element.
Fri, 06 Sep 2013 13:30:58 +0400 hgweb: add removeByClassName javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:58 +0400] rev 19742
hgweb: add removeByClassName javascript function It removes all elements with specified class name from the document.
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: add docFromHTML javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19741
hgweb: add docFromHTML javascript function It takes a string with HTML markup and creates DOM document from it. The implementation is a part of code from https://developer.mozilla.org/en-US/docs/Web/API/DOMParser#DOMParser_HTML_extension_for_other_browsers
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: add makeRequest javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19740
hgweb: add makeRequest javascript function This function performs an asynchronous HTTP request and calls provided callbacks: - onstart: request is sent - onsuccess: response is received - onerror: some error occured - oncomplete: response is fully processed and all other callbacks finished
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: add format javascript function
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19739
hgweb: add format javascript function It replaces placeholders like '%key%' with replacement values given.
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: add nextentry variable for easy pagination in changelog
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19738
hgweb: add nextentry variable for easy pagination in changelog nextentry always contains the first entry not shown on current page (if there is such entry)
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: always compute all entries and latestentry in changelog
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19737
hgweb: always compute all entries and latestentry in changelog Get the whole list of entries before rendering instead of using lazy evaluation. This doesn't affect the performance for usual case when the entries are shown anyway. When both entries and latestentry are used, this performs unnoticeably faster, and for pages which use only latestentry (quite uncommon case) it would be a bit slower. This change will make it possible to get the first entry of the next page easily without computing the list twice.
Tue, 17 Sep 2013 17:42:13 +0200 templatefilters: add short format for age formatting
David Soria Parra <dsp@experimentalworks.net> [Tue, 17 Sep 2013 17:42:13 +0200] rev 19736
templatefilters: add short format for age formatting Implements a short output format for ages e.g. "1 second ago" is abbrevated as "1s ago".
Fri, 06 Sep 2013 13:30:57 +0400 hgweb: remove unused argument of changelist function in changelog
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:57 +0400] rev 19735
hgweb: remove unused argument of changelist function in changelog This doesn't change the behavior as the argument isn't used anyway, and it's a preparation to the next patches,
Tue, 17 Sep 2013 23:34:57 -0500 context: move evolution functions from changectx to basectx
Sean Farley <sean.michael.farley@gmail.com> [Tue, 17 Sep 2013 23:34:57 -0500] rev 19734
context: move evolution functions from changectx to basectx This is just a code move and corrects an overlook from my previous patch series that assumed only a changectx would want this functionality.
Tue, 17 Sep 2013 18:34:45 -0500 context: use correct spelling of committable
Sean Farley <sean.michael.farley@gmail.com> [Tue, 17 Sep 2013 18:34:45 -0500] rev 19733
context: use correct spelling of committable
Tue, 17 Sep 2013 18:19:04 -0500 check-code: check C patterns against .h files
Matt Mackall <mpm@selenic.com> [Tue, 17 Sep 2013 18:19:04 -0500] rev 19732
check-code: check C patterns against .h files
Tue, 17 Sep 2013 18:13:54 -0500 check-code: make casting style check more precise
Matt Mackall <mpm@selenic.com> [Tue, 17 Sep 2013 18:13:54 -0500] rev 19731
check-code: make casting style check more precise
Tue, 10 Sep 2013 19:49:34 -0700 log: make file log slow path usable on large repos
Durham Goode <durham@fb.com> [Tue, 10 Sep 2013 19:49:34 -0700] rev 19730
log: make file log slow path usable on large repos Running "hg log <pattern or directory>" on large repos took a very, very long time because it first read ctx.files() for every commit before even starting to process the results. This change makes the ctx.files() check lazy, which makes the command start producing results immediately.
Fri, 13 Sep 2013 15:40:04 -0500 plan9: update util.py for cpython 2.7 build
Jeff Sickel <jas@corpus-callosum.com> [Fri, 13 Sep 2013 15:40:04 -0500] rev 19729
plan9: update util.py for cpython 2.7 build
Fri, 06 Sep 2013 23:47:59 -0700 parse_manifest: rewrite to use memchr
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 23:47:59 -0700] rev 19728
parse_manifest: rewrite to use memchr memchr is usually smarter than a simple for loop. With gcc 4.4.6 and glibc 2.12 on x86-64, for a 20 MB, 200,000 file manifest, parse_manifest goes from 0.116 seconds to 0.095 seconds.
Mon, 16 Sep 2013 12:17:55 -0700 parsers: correctly handle a failed allocation
Bryan O'Sullivan <bryano@fb.com> [Mon, 16 Sep 2013 12:17:55 -0700] rev 19727
parsers: correctly handle a failed allocation
Mon, 16 Sep 2013 12:12:37 -0700 parsers: use Py_INCREF safely
Bryan O'Sullivan <bryano@fb.com> [Mon, 16 Sep 2013 12:12:37 -0700] rev 19726
parsers: use Py_INCREF safely
Mon, 16 Sep 2013 12:10:28 -0700 parsers: state is a char, not an int
Bryan O'Sullivan <bryano@fb.com> [Mon, 16 Sep 2013 12:10:28 -0700] rev 19725
parsers: state is a char, not an int
Fri, 13 Sep 2013 10:00:57 +0800 setup: check if mercurial/util.h has been modified
Wei, Elson <elson.wei@gmail.com> [Fri, 13 Sep 2013 10:00:57 +0800] rev 19724
setup: check if mercurial/util.h has been modified Before, if mercurial/util.h was modified but *.c wasn't, no extension was rebuilt.
Fri, 13 Sep 2013 09:54:43 +0800 util.h: add stdint basic type definitions
Wei, Elson <elson.wei@gmail.com> [Fri, 13 Sep 2013 09:54:43 +0800] rev 19723
util.h: add stdint basic type definitions MS C compiler v15 doesn't have stdint.h. Add basic int types those are defined in stdint.h.
Fri, 06 Sep 2013 13:30:56 +0400 hgweb: add revset syntax support to search
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19722
hgweb: add revset syntax support to search This mode is used when all the conditions are met: - 'reverse(%s)' % query string can be parsed to a revset tree - this tree has depth more than two, i.e. the query has some part of revset syntax used - the repo can be actually matched against this tree, i.e. it has only existent function/operators and revisions/tags/bookmarks specified are correct - no revset regexes are used in the query (strings which start with 're:') - only functions explicitly marked as safe in revset.py are used in the query Add several new tests for different parsing conditions and exception handling.
Fri, 06 Sep 2013 13:30:56 +0400 revset: add a whitelist of DoS-safe symbols
Alexander Plavin <alexander@plav.in> [Fri, 06 Sep 2013 13:30:56 +0400] rev 19721
revset: add a whitelist of DoS-safe symbols 'Safe' here means that they can't be used for a DoS attack for any given input.
Wed, 07 Aug 2013 01:21:31 +0400 revset: add helper function to get functions used in a revset parse tree
Alexander Plavin <alexander@plav.in> [Wed, 07 Aug 2013 01:21:31 +0400] rev 19720
revset: add helper function to get functions used in a revset parse tree Will be used to determine whether all functions used in a hgweb search query are allowed there.
Fri, 09 Aug 2013 22:52:58 +0400 revset: add helper function to get revset parse tree depth
Alexander Plavin <alexander@plav.in> [Fri, 09 Aug 2013 22:52:58 +0400] rev 19719
revset: add helper function to get revset parse tree depth Will be used to determine if a hgweb search query actually uses any revset syntax.
Sat, 07 Sep 2013 00:59:24 -0700 parsers: use a lookup table to convert hex to binary
Siddharth Agarwal <sid0@fb.com> [Sat, 07 Sep 2013 00:59:24 -0700] rev 19718
parsers: use a lookup table to convert hex to binary This is a hotspot for parse_manifest. With this patch, for a 20 MB, 200,000 file manifest, parse_manifest goes down from 0.153 seconds to 0.116.
Fri, 06 Sep 2013 23:05:33 -0700 revlog: remove _chunkbase since it is no longer used
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 23:05:33 -0700] rev 19717
revlog: remove _chunkbase since it is no longer used This was introduced in 2011 for the lwcopy feature but never actually got used. A similar hook can easily be reintroduced if needed in the future.
Fri, 06 Sep 2013 23:05:11 -0700 revlog: move chunk cache preload from revision to _chunks
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 23:05:11 -0700] rev 19716
revlog: move chunk cache preload from revision to _chunks In case we don't have a cached text already, add the base rev to the list passed to _chunks. In the cached case this also avoids unnecessarily preloading the chunk for the cached rev.
Fri, 06 Sep 2013 22:57:51 -0700 revlog._chunks: inline getchunk
Siddharth Agarwal <sid0@fb.com> [Fri, 06 Sep 2013 22:57:51 -0700] rev 19715
revlog._chunks: inline getchunk We do this in a somewhat hacky way, relying on the fact that our sole caller preloads the cache right before calling us. An upcoming patch will make this more sensible. For a 20 MB manifest with a delta chain of > 40k, perfmanifest goes from 0.49 seconds to 0.46.
Sat, 07 Sep 2013 12:42:46 -0700 revlog.revision: fix cache preload for inline revlogs
Siddharth Agarwal <sid0@fb.com> [Sat, 07 Sep 2013 12:42:46 -0700] rev 19714
revlog.revision: fix cache preload for inline revlogs Previously the length of data preloaded did not account for the interleaved io contents. This meant that we'd sometimes have cache misses in _chunks despite the preloading. Having a correctly filled out cache will become essential in an upcoming patch.
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 +30000 tip