Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 23 Dec 2013 13:33:21 -0800] rev 20204
obsolete: improve allsuccessors doc string
The fact original nodes are also yield is not obvious. We update the docstring
to highlight it.
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.
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.
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.
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
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.
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.
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.
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.
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20195
localrepo: remove unused repo.branchtags()/_branchtip() methods
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20194
hgweb: simplify branches 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()
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
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20191
debuglabelcomplete: simplify with repo.branchmap().iterbranches()
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20190
branchmap: introduce iterbranches() method
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20189
localrepo: refactor repo.branchheads() to use repo.branchmap().branchheads()
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20188
branchmap: introduce branchheads() method
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20187
localrepo: refactor repo.branchtip() to use repo.branchmap().branchtip()
Brodie Rao <brodie@sf.io> [Mon, 16 Sep 2013 01:08:29 -0700] rev 20186
branchmap: introduce branchtip() method
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).
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.
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.
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
Brodie Rao <brodie@sf.io> [Fri, 15 Nov 2013 23:18:08 -0500] rev 20181
branchmap: add documentation on the branchcache on-disk format