Mon, 23 Dec 2013 13:32:03 -0800 obsolete: fix bad comment
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 23 Dec 2013 13:32:03 -0800] rev 20203
obsolete: fix bad comment We cannot afford such extra "with" they are far too pricy.
Sun, 29 Dec 2013 13:54:04 +0000 util: remove unused realpath (issue4063)
Christian Ebert <blacktrash@gmx.net> [Sun, 29 Dec 2013 13:54:04 +0000] rev 20202
util: remove unused realpath (issue4063) util.realpath was in use for only 5 days from dbdb777502dc until it was backed out in c519cd8f0169 because it caused issue3077 and issue3071.
Wed, 01 Jan 2014 17:57:48 -0500 import-checker: suppress check-code about any()
Augie Fackler <raf@durin42.com> [Wed, 01 Jan 2014 17:57:48 -0500] rev 20201
import-checker: suppress check-code about any() ast is a new enough module that this script can't work on any version of Python without any(), so we'll just use it.
Tue, 24 Dec 2013 19:10:04 -0500 import-checker: use any() and a genexp to avoid awkward for/else construction
Augie Fackler <raf@durin42.com> [Tue, 24 Dec 2013 19:10:04 -0500] rev 20200
import-checker: use any() and a genexp to avoid awkward for/else construction
Sun, 22 Dec 2013 21:27:00 -0800 import-checker: backout 40f79b9a2cc8 (issue4129)
Chris Jerdonek <chris.jerdonek@gmail.com> [Sun, 22 Dec 2013 21:27:00 -0800] rev 20199
import-checker: backout 40f79b9a2cc8 (issue4129) This patch backs out 40f79b9a2cc8, which caused test-module-imports.t to be skipped when the test was run using virtualenv. Since the test now passes when using virtualenv, the skip is no longer necessary.
Sun, 22 Dec 2013 21:20:38 -0800 import-checker: make test-module-imports.t work using virtualenv (issue4129)
Chris Jerdonek <chris.jerdonek@gmail.com> [Sun, 22 Dec 2013 21:20:38 -0800] rev 20198
import-checker: make test-module-imports.t work using virtualenv (issue4129) This patch modifies contrib/import-checker.py so that test-module-imports.t will pass if run using virtualenv. The patch achieves this by adding two new prefixes to the list of allowable sys.path prefixes. The added prefixes are the directories of two modules in the stdlib. The modules selected are a minimal set that allowed the return value of list_stdlib_modules() to match the return value without virtualenv, when run on the patch author's machine: Mac OS X 10.8, Python 2.7.6.
Sun, 22 Dec 2013 14:10:26 -0800 import-checker: refactor sys.path prefix check (issue4129)
Chris Jerdonek <chris.jerdonek@gmail.com> [Sun, 22 Dec 2013 14:10:26 -0800] rev 20197
import-checker: refactor sys.path prefix check (issue4129) This patch refactors the logic in contrib/import-checker.py responsible for checking the beginnings of the paths in sys.path. In particular, it adds a variable that defines the set of allowed prefixes. The primary purpose of this change is to make it easier to add more allowed prefixes. This will be useful in resolving issue4129, which involves making the function list_stdlib_modules() work when run from a virtualenv.
Tue, 24 Dec 2013 17:44:23 -0500 filter: add a comment so that people do not forget to update subsettable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 24 Dec 2013 17:44:23 -0500] rev 20196
filter: add a comment so that people do not forget to update subsettable Changeset 175c6fd8cacc moved `subsettable` from `mercurial/repoview.py` to `mercurial/branchmap.py`. This mean that `filtertable` and `subsettable` are no longer next to each other. So we add a comment to remind people to update both.
Mon, 16 Sep 2013 01:08:29 -0700 localrepo: remove unused repo.branchtags()/_branchtip() methods
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20195
localrepo: remove unused repo.branchtags()/_branchtip() methods
Mon, 16 Sep 2013 01:08:29 -0700 hgweb: simplify branches with repo.branchmap().iterbranches()
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20194
hgweb: simplify branches with repo.branchmap().iterbranches()
Mon, 16 Sep 2013 01:08:29 -0700 hgweb: simplify summary with repo.branchmap().iterbranches()
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20193
hgweb: simplify summary with repo.branchmap().iterbranches()
Mon, 16 Sep 2013 01:08:29 -0700 branches: simplify with repo.branchmap().iterbranches()
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20192
branches: simplify with repo.branchmap().iterbranches() Running hg branches on the PyPy repo (with 996) over a busy NFS server, before this change: $ time hg --profile branches > /dev/null CallCount Recursive Total(s) Inline(s) module:lineno(function) 1069 0 1.2955 1.2955 <open> 1063 0 0.5576 0.5576 <method 'close' of 'file' objects> 4122 0 0.1993 0.0449 mercurial.repoview:161(changelog) 8240 0 0.0771 0.0299 mercurial.changelog:133(tip) 4122 0 0.0422 0.0204 mercurial.localrepo:26(__get__) 8240 0 0.0252 0.0131 <len> 4122 0 0.0060 0.0037 mercurial.repoview:112(filterrevs) 8240 0 0.0028 0.0028 <hash> 3029 0 0.2139 0.0390 mercurial.context:202(__init__) 3029 0 0.1402 0.0339 mercurial.repoview:161(changelog) 3029 0 0.0240 0.0087 mercurial.changelog:183(rev) 9087 0 0.0067 0.0067 <isinstance> 1096 0 0.0025 0.0025 <binascii.unhexlify> 4125 0 0.0015 0.0015 <len> 4229 0 0.0344 0.0344 mercurial.revlog:296(rev) 1061 0 0.0343 0.0343 <method 'seek' of 'file' objects> 1063 0 0.0339 0.0339 <method 'read' of 'file' objects> 40476 16488 0.0479 0.0311 <len> 16488 0 0.0216 0.0168 mercurial.revlog:262(__len__) 8240 0 0.0771 0.0299 mercurial.changelog:133(tip) 8240 0 0.0281 0.0203 mercurial.changelog:190(node) 8240 0 0.0191 0.0095 <len> 1342 0 0.0278 0.0278 <zlib.decompress> 1074 0 2.2143 0.0266 mercurial.changelog:270(read) 1074 0 2.1328 0.0230 mercurial.revlog:907(revision) 1073 0 0.0208 0.0108 mercurial.changelog:28(decodeextra) 2148 0 0.0072 0.0072 <method 'split' of 'str' objects> 2148 0 0.0211 0.0038 mercurial.encoding:61(tolocal) 1074 0 0.0028 0.0028 <method 'index' of 'str' objects> 1061 0 1.9811 0.0237 mercurial.revlog:817(_loadchunk) real 0m2.742s user 0m0.811s sys 0m0.188s After this change: $ time hg --profile branches > /dev/null CallCount Recursive Total(s) Inline(s) module:lineno(function) 2092 0 0.1444 0.0292 mercurial.context:202(__init__) 2092 0 0.0908 0.0216 mercurial.repoview:161(changelog) 2092 0 0.0164 0.0057 mercurial.changelog:183(rev) 6276 0 0.0045 0.0045 <isinstance> 1096 0 0.0024 0.0024 <binascii.unhexlify> 3188 0 0.0013 0.0013 <len> 2218 0 0.0230 0.0230 mercurial.revlog:296(rev) 2111 0 0.1028 0.0218 mercurial.repoview:161(changelog) 4218 0 0.0387 0.0146 mercurial.changelog:133(tip) 2111 0 0.0238 0.0104 mercurial.localrepo:26(__get__) 4218 0 0.0122 0.0062 <len> 2111 0 0.0038 0.0021 mercurial.repoview:112(filterrevs) 4218 0 0.0014 0.0014 <hash> 20240 8444 0.0233 0.0149 <len> 8444 0 0.0110 0.0084 mercurial.revlog:262(__len__) 4218 0 0.0387 0.0146 mercurial.changelog:133(tip) 4218 0 0.0144 0.0103 mercurial.changelog:190(node) 4218 0 0.0097 0.0048 <len> 2398 1 0.0271 0.0115 mercurial.localrepo:26(__get__) 2398 1 0.0146 0.0046 mercurial.scmutil:939(__get__) 2124 0 0.0009 0.0009 mercurial.localrepo:330(unfiltered) 274 0 0.0002 0.0002 mercurial.repoview:192(unfiltered) 4 0 0.1409 0.0112 mercurial.branchmap:19(read) 1096 0 0.1113 0.0028 mercurial.localrepo:407(__contains__) 1098 0 0.0020 0.0020 <method 'split' of 'str' objects> 1097 0 0.0019 0.0019 <binascii.unhexlify> 1096 0 0.0093 0.0018 mercurial.encoding:61(tolocal) 1096 0 0.0010 0.0010 <method 'append' of 'list' objects> 4349 0 0.0150 0.0105 mercurial.changelog:190(node) 4349 0 0.0045 0.0045 mercurial.revlog:317(node) real 0m0.362s user 0m0.329s sys 0m0.024s
Mon, 16 Sep 2013 01:08:29 -0700 debuglabelcomplete: simplify with repo.branchmap().iterbranches()
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20191
debuglabelcomplete: simplify with repo.branchmap().iterbranches()
Mon, 16 Sep 2013 01:08:29 -0700 branchmap: introduce iterbranches() method
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20190
branchmap: introduce iterbranches() method
Mon, 16 Sep 2013 01:08:29 -0700 localrepo: refactor repo.branchheads() to use repo.branchmap().branchheads()
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20189
localrepo: refactor repo.branchheads() to use repo.branchmap().branchheads()
Mon, 16 Sep 2013 01:08:29 -0700 branchmap: introduce branchheads() method
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20188
branchmap: introduce branchheads() method
Mon, 16 Sep 2013 01:08:29 -0700 localrepo: refactor repo.branchtip() to use repo.branchmap().branchtip()
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20187
localrepo: refactor repo.branchtip() to use repo.branchmap().branchtip()
Mon, 16 Sep 2013 01:08:29 -0700 branchmap: introduce branchtip() method
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20186
branchmap: introduce branchtip() method
Mon, 16 Sep 2013 01:08:29 -0700 branchmap: cache open/closed branch head information
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20185
branchmap: cache open/closed branch head information This lets us determine the open/closed state of a branch without reading from the changelog (which can be costly over NFS and/or with many branches).
Mon, 11 Nov 2013 21:16:54 +1100 bookmarks: allow push -B to create a new remote head (issue2372)
Stephen Lee <sphen.lee@gmail.com> [Mon, 11 Nov 2013 21:16:54 +1100] rev 20184
bookmarks: allow push -B to create a new remote head (issue2372) Push is currently allowed to create a new head if there is a remote bookmark that will be updated to point to the new head. If the bookmark is not known remotely then push aborts, even if a -B argument is about to push the bookmark. This change allows push to continue in this case. This does not require a wireproto force.
Thu, 21 Nov 2013 15:46:49 -0500 template: modify showextras to return a hybrid
Matthew Turk <matthewturk@gmail.com> [Thu, 21 Nov 2013 15:46:49 -0500] rev 20183
template: modify showextras to return a hybrid This modifies slightly the behavior introduced in 519120a96c63 to allow showextras to return a hybrid, rather than showlist. The example in the template help file now executes and returns meaningful results.
Fri, 15 Nov 2013 23:18:08 -0500 branches: avoid unnecessary changectx.branch() calls
Brodie Rao <brodie@sf.io> [Fri, 15 Nov 2013 23:18:08 -0500] rev 20182
branches: avoid unnecessary changectx.branch() calls This requires reading from the changelog, which can be costly over NFS. Note that this does not totally remove reading from the changelog; we still do that when calling changectx.closesbranch(). That call will be removed in a later patch. Running hg branches on the PyPy repo (with 996) over a busy NFS server, before this change: $ time hg --profile branches > /dev/null CallCount Recursive Total(s) Inline(s) module:lineno(function) 2042 0 2.2827 2.2827 <open> 2036 0 0.9840 0.9840 <method 'close' of 'file' objects> 2036 0 0.0464 0.0464 <method 'read' of 'file' objects> 5233 0 0.1985 0.0453 mercurial.repoview:161(changelog) 10462 0 0.0791 0.0314 mercurial.changelog:133(tip) 5233 0 0.0388 0.0176 mercurial.localrepo:26(__get__) 10462 0 0.0250 0.0126 <len> 5233 0 0.0059 0.0039 mercurial.repoview:112(filterrevs) 10462 0 0.0029 0.0029 <hash> 2034 0 0.0444 0.0444 <method 'seek' of 'file' objects> 5340 0 0.0390 0.0390 mercurial.revlog:296(rev) 2582 0 0.0371 0.0371 <zlib.decompress> 3155 0 0.1963 0.0366 mercurial.context:202(__init__) 3155 0 0.1238 0.0306 mercurial.repoview:161(changelog) 3155 0 0.0261 0.0080 mercurial.changelog:183(rev) 9465 0 0.0061 0.0061 <isinstance> 1096 0 0.0023 0.0023 <binascii.unhexlify> 4251 0 0.0014 0.0014 <len> 2059 0 3.7341 0.0332 mercurial.changelog:270(read) 2059 0 3.6304 0.0307 mercurial.revlog:907(revision) 2057 0 0.0262 0.0137 mercurial.changelog:28(decodeextra) 4118 0 0.0094 0.0094 <method 'split' of 'str' objects> 4118 0 0.0270 0.0048 mercurial.encoding:61(tolocal) 2059 0 0.0040 0.0040 <method 'index' of 'str' objects> 10462 0 0.0791 0.0314 mercurial.changelog:133(tip) 10462 0 0.0289 0.0207 mercurial.changelog:190(node) 10462 0 0.0188 0.0091 <len> 52433 20932 0.0478 0.0310 <len> 20932 0 0.0221 0.0168 mercurial.revlog:262(__len__) 2059 0 3.6304 0.0307 mercurial.revlog:907(revision) real 0m4.361s user 0m0.986s sys 0m0.237s After this change: $ time hg --profile branches > /dev/null CallCount Recursive Total(s) Inline(s) module:lineno(function) 1069 0 1.1098 1.1098 <open> 1063 0 0.4865 0.4865 <method 'close' of 'file' objects> 4122 0 0.1811 0.0404 mercurial.repoview:161(changelog) 8240 0 0.0712 0.0272 mercurial.changelog:133(tip) 4122 0 0.0378 0.0177 mercurial.localrepo:26(__get__) 8240 0 0.0221 0.0115 <len> 4122 0 0.0057 0.0033 mercurial.repoview:112(filterrevs) 8240 0 0.0025 0.0025 <hash> 3029 0 0.1979 0.0371 mercurial.context:202(__init__) 3029 0 0.1278 0.0310 mercurial.repoview:161(changelog) 3029 0 0.0230 0.0081 mercurial.changelog:183(rev) 9087 0 0.0061 0.0061 <isinstance> 1096 0 0.0026 0.0026 <binascii.unhexlify> 4125 0 0.0014 0.0014 <len> 4229 0 0.0337 0.0337 mercurial.revlog:296(rev) 1061 0 0.0296 0.0296 <method 'seek' of 'file' objects> 1063 0 0.0292 0.0292 <method 'read' of 'file' objects> 8240 0 0.0712 0.0272 mercurial.changelog:133(tip) 8240 0 0.0271 0.0196 mercurial.changelog:190(node) 8240 0 0.0169 0.0083 <len> 40476 16488 0.0422 0.0271 <len> 16488 0 0.0193 0.0152 mercurial.revlog:262(__len__) 1342 0 0.0241 0.0241 <zlib.decompress> 9445 0 0.0336 0.0224 mercurial.changelog:190(node) 9445 0 0.0112 0.0112 mercurial.revlog:317(node) 1074 0 1.9102 0.0224 mercurial.changelog:270(read) 1074 0 1.8397 0.0202 mercurial.revlog:907(revision) 1073 0 0.0187 0.0099 mercurial.changelog:28(decodeextra) 2148 0 0.0061 0.0061 <method 'split' of 'str' objects> 2148 0 0.0184 0.0034 mercurial.encoding:61(tolocal) real 0m2.402s user 0m0.735s sys 0m0.177s
Fri, 15 Nov 2013 23:18:08 -0500 branchmap: add documentation on the branchcache on-disk format
Brodie Rao <brodie@sf.io> [Fri, 15 Nov 2013 23:18:08 -0500] rev 20181
branchmap: add documentation on the branchcache on-disk format
Sun, 17 Nov 2013 18:04:29 -0500 revlog: allow tuning of the chunk cache size (via format.chunkcachesize)
Brodie Rao <brodie@sf.io> [Sun, 17 Nov 2013 18:04:29 -0500] rev 20180
revlog: allow tuning of the chunk cache size (via format.chunkcachesize) Running perfmoonwalk on the Mercurial repo (with almost 20,000 changesets) on Mac OS X with an SSD, before this change: $ hg --config format.chunkcachesize=1024 perfmoonwalk ! wall 2.022021 comb 2.030000 user 1.970000 sys 0.060000 (best of 5) (16,154 cache hits, 3,840 misses.) $ hg --config format.chunkcachesize=4096 perfmoonwalk ! wall 1.901006 comb 1.900000 user 1.880000 sys 0.020000 (best of 6) (19,003 hits, 991 misses.) $ hg --config format.chunkcachesize=16384 perfmoonwalk ! wall 1.802775 comb 1.800000 user 1.800000 sys 0.000000 (best of 6) (19,746 hits, 248 misses.) $ hg --config format.chunkcachesize=32768 perfmoonwalk ! wall 1.818545 comb 1.810000 user 1.810000 sys 0.000000 (best of 6) (19,870 hits, 124 misses.) $ hg --config format.chunkcachesize=65536 perfmoonwalk ! wall 1.801350 comb 1.810000 user 1.800000 sys 0.010000 (best of 6) (19,932 hits, 62 misses.) $ hg --config format.chunkcachesize=131072 perfmoonwalk ! wall 1.805879 comb 1.820000 user 1.810000 sys 0.010000 (best of 6) (19,963 hits, 31 misses.) We may want to change the default size in the future based on testing and user feedback.
Sun, 17 Nov 2013 18:04:28 -0500 revlog: read/cache chunks in fixed windows of 64 KB
Brodie Rao <brodie@sf.io> [Sun, 17 Nov 2013 18:04:28 -0500] rev 20179
revlog: read/cache chunks in fixed windows of 64 KB When reading a revlog chunk, instead of reading up to 64 KB ahead of the request offset and caching that, this change caches a fixed window before and after the requested data that falls on 64 KB boundaries. This increases cache hits when reading revlogs backwards. Running perfmoonwalk on the Mercurial repo (with almost 20,000 changesets) on Mac OS X with an SSD, before this change: $ hg perfmoonwalk ! wall 2.307994 comb 2.310000 user 2.120000 sys 0.190000 (best of 5) (Each run has 10,668 cache hits and 9,304 misses.) After this change: $ hg perfmoonwalk ! wall 1.814117 comb 1.810000 user 1.810000 sys 0.000000 (best of 6) (19,931 cache hits, 62 misses.) On a busy NFS share, before this change: $ hg perfmoonwalk ! wall 17.000034 comb 4.100000 user 3.270000 sys 0.830000 (best of 3) After: $ hg perfmoonwalk ! wall 1.746115 comb 1.670000 user 1.660000 sys 0.010000 (best of 5)
Sun, 17 Nov 2013 18:04:28 -0500 perf: add perfmoonwalk command to walk the changelog backwards
Brodie Rao <brodie@sf.io> [Sun, 17 Nov 2013 18:04:28 -0500] rev 20178
perf: add perfmoonwalk command to walk the changelog backwards This lets us test the effectiveness (or ineffectiveness) of the revlog chunk cache when walking revlogs backwards.
Tue, 03 Dec 2013 13:28:04 -0500 largefiles: call super class method with proper kwargs to respect API
Long Vu <long@tlvu.ca> [Tue, 03 Dec 2013 13:28:04 -0500] rev 20177
largefiles: call super class method with proper kwargs to respect API Since the localrepositoyry.push() method in mercurial/localrepo.py is defined this way: def push(self, remote, force=False, revs=None, newbranch=False): it is better for largefiles to call push() on the super class with proper kwargs to respect the API. This will avoid breaking other extensions overriding the push method this way: def push(self, remote, force=False, **kwargs):
Wed, 13 Nov 2013 15:55:30 +0900 subrepo: check phase of state in each subrepositories before committing
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 13 Nov 2013 15:55:30 +0900] rev 20176
subrepo: check phase of state in each subrepositories before committing Before this patch, phase of newly created commit is determined by "phases.new-commit" configuration regardless of phase of state in each subrepositories. For example, this may cause the "public" revision in the parent repository referring the "secret" one in subrepository. This patch checks phase of state in each subrepositories before committing in the parent, and aborts or changes phase of newly created commit if subrepositories have more restricted phase than the parent. This patch uses "follow" as default value of "phases.checksubrepos" configuration, because it can keep consistency between phases of the parent and subrepositories without breaking existing tool chains.
Mon, 16 Dec 2013 12:59:32 -0600 merge with crew
Matt Mackall <mpm@selenic.com> [Mon, 16 Dec 2013 12:59:32 -0600] rev 20175
merge with crew
Sat, 14 Dec 2013 12:48:12 -0500 http: backout 181108726ea5, which breaks on Python 2.4
Augie Fackler <raf@durin42.com> [Sat, 14 Dec 2013 12:48:12 -0500] rev 20174
http: backout 181108726ea5, which breaks on Python 2.4
Sat, 14 Dec 2013 11:58:26 -0500 test-module-imports: try and detect virtualenv breakage (issue4129)
Augie Fackler <raf@durin42.com> [Sat, 14 Dec 2013 11:58:26 -0500] rev 20173
test-module-imports: try and detect virtualenv breakage (issue4129) virtualenvs (among other things) break the stdlib module detection in the import checker, and I don't see a good way to work around that for now.
Mon, 25 Nov 2013 17:18:12 +0100 http: reuse authentication info after the first failed request (issue3567)
Stéphane Klein <contact@stephane-klein.info> [Mon, 25 Nov 2013 17:18:12 +0100] rev 20172
http: reuse authentication info after the first failed request (issue3567) Context: mercurial access to repository server with http access, and this server is protected by basic auth. Before patch: * mercurial try an anonymous access to server, server return 401 response and mercurial resend request with login / password information After patch: * mercurial try an anonymous access to server, server return 401 response. For all subsequent requests, mercurial keep in memory this information (this server need basic auth information). This patch reduce the number of http access against mercurial server. Example, before patch : 10.10.168.170 - - [25/Oct/2013:15:44:51 +0200] "GET /hg/testagt?cmd=capabilities HTTP/1.1" 401 260 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:44:52 +0200] "GET /hg/testagt?cmd=capabilities HTTP/1.1" 200 147 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:00 +0200] "GET /hg/testagt?cmd=capabilities HTTP/1.1" 401 260 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:01 +0200] "GET /hg/testagt?cmd=capabilities HTTP/1.1" 200 147 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:03 +0200] "GET /hg/testagt?cmd=batch HTTP/1.1" 401 260 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:04 +0200] "GET /hg/testagt?cmd=batch HTTP/1.1" 200 42 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:06 +0200] "GET /hg/testagt?cmd=getbundle HTTP/1.1" 401 260 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:07 +0200] "GET /hg/testagt?cmd=getbundle HTTP/1.1" 200 61184 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:09 +0200] "GET /hg/testagt?cmd=listkeys HTTP/1.1" 401 260 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:10 +0200] "GET /hg/testagt?cmd=listkeys HTTP/1.1" 200 15 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:12 +0200] "GET /hg/testagt?cmd=listkeys HTTP/1.1" 401 260 "-" "mercurial/proto-1.0" 10.10.168.170 - - [25/Oct/2013:15:45:12 +0200] "GET /hg/testagt?cmd=listkeys HTTP/1.1" 200 - "-" "mercurial/proto-1.0" Example after patch : 10.10.168.170 - - [28/Oct/2013:11:49:14 +0100] "GET /hg/testagt?cmd=capabilities HTTP/1.1" 401 260 "-" "mercurial/proto-1.0" 10.10.168.170 - - [28/Oct/2013:11:49:15 +0100] "GET /hg/testagt?cmd=capabilities HTTP/1.1" 200 147 "-" "mercurial/proto-1.0" 10.10.168.170 - - [28/Oct/2013:11:49:17 +0100] "GET /hg/testagt?cmd=batch HTTP/1.1" 200 42 "-" "mercurial/proto-1.0" 10.10.168.170 - - [28/Oct/2013:11:49:19 +0100] "GET /hg/testagt?cmd=getbundle HTTP/1.1" 200 61184 "-" "mercurial/proto-1.0" 10.10.168.170 - - [28/Oct/2013:11:49:22 +0100] "GET /hg/testagt?cmd=listkeys HTTP/1.1" 200 15 "-" "mercurial/proto-1.0" 10.10.168.170 - - [28/Oct/2013:11:49:24 +0100] "GET /hg/testagt?cmd=listkeys HTTP/1.1" 200 - "-" "mercurial/proto-1.0" In this last example, you can see only one 401 response.
(0) -10000 -3000 -1000 -300 -100 -50 -32 +32 +50 +100 +300 +1000 +3000 +10000 +30000 tip