Wed, 17 Sep 2014 19:52:34 -0700 revset: use `subset &` in `origin`
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 17 Sep 2014 19:52:34 -0700] rev 22536
revset: use `subset &` in `origin` This takes advantage of the `fullreposet` smartness. revset #0: origin(tip) 0) wall 0.005353 comb 0.000000 user 0.000000 sys 0.000000 (best of 354) 1) wall 0.003080 comb 0.000000 user 0.000000 sys 0.000000 (best of 446)
Wed, 17 Sep 2014 10:59:16 -0700 revset: use `subset &` in `follow`
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 17 Sep 2014 10:59:16 -0700] rev 22535
revset: use `subset &` in `follow` This takes advantage of the `fullreposet` smartness. revset #0: follow(COPYING) 0) wall 0.002446 comb 0.000000 user 0.000000 sys 0.000000 (best of 735) 1) wall 0.000331 comb 0.000000 user 0.000000 sys 0.000000 (best of 5672)
Wed, 17 Sep 2014 10:58:50 -0700 revset: use `subset &` in `filelog`
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 17 Sep 2014 10:58:50 -0700] rev 22534
revset: use `subset &` in `filelog` This takes advantage of the `fullreposet` smartness. revset #0: file(COPYING) 0) wall 3.179066 comb 3.180000 user 3.140000 sys 0.040000 (best of 3) 1) wall 2.723699 comb 2.730000 user 2.690000 sys 0.040000 (best of 4)
Wed, 17 Sep 2014 10:58:39 -0700 revset: use `subset &` in `divergent`
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 17 Sep 2014 10:58:39 -0700] rev 22533
revset: use `subset &` in `divergent` This takes advantage of the `fullreposet` smartness. revset #0: divergent() 0) wall 0.002047 comb 0.000000 user 0.000000 sys 0.000000 (best of 813) 1) wall 0.000052 comb 0.000000 user 0.000000 sys 0.000000 (best of 22757)
Wed, 17 Sep 2014 10:57:57 -0700 revset: use `subset &` in `bisect`
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 17 Sep 2014 10:57:57 -0700] rev 22532
revset: use `subset &` in `bisect` This takes advantage of the `fullreposet` smartness. revset #0: bisect(range) 0) wall 0.014007 comb 0.010000 user 0.010000 sys 0.000000 (best of 115) 1) wall 0.005556 comb 0.010000 user 0.010000 sys 0.000000 (best of 235)
Wed, 17 Sep 2014 10:57:47 -0700 revset: use `subset &` in `ancestorspec`
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 17 Sep 2014 10:57:47 -0700] rev 22531
revset: use `subset &` in `ancestorspec` This takes advantage of the `fullreposet` smartness. revset #0: tip~25 0) wall 0.004800 comb 0.010000 user 0.010000 sys 0.000000 (best of 259) 1) wall 0.002475 comb 0.000000 user 0.000000 sys 0.000000 (best of 717)
Wed, 17 Sep 2014 19:57:09 -0700 revset: use `subset &` in `bookmark`
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 17 Sep 2014 19:57:09 -0700] rev 22530
revset: use `subset &` in `bookmark` Speedup, Weeeeeee! revset #0: bookmark() 0) wall 0.002240 comb 0.000000 user 0.000000 sys 0.000000 (best of 571) 1) wall 0.000132 comb 0.000000 user 0.000000 sys 0.000000 (best of 14059)
Wed, 17 Sep 2014 10:59:40 -0700 revset: use `subset &` in `outgoing`
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 17 Sep 2014 10:59:40 -0700] rev 22529
revset: use `subset &` in `outgoing` This should give us the same benefit as elsewhere. Result is simpler (and "faster"). Outgoing is dominated by the discovery so no benchmark is provided.
Wed, 30 Apr 2014 16:56:48 -0700 revset: avoid in loop lookup in _generatorset._consumegen
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Apr 2014 16:56:48 -0700] rev 22528
revset: avoid in loop lookup in _generatorset._consumegen Python lookups are slow, so do all lookup outside of the for loop. This provide a small but still significant speedup: revset #0: 0:: 0) wall 0.063258 comb 0.060000 user 0.060000 sys 0.000000 (best of 100) 1) wall 0.057776 comb 0.050000 user 0.050000 sys 0.000000 (best of 100)
Fri, 25 Apr 2014 14:51:24 -0700 revset: reduce dict lookup in lazyset.__contains__
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 25 Apr 2014 14:51:24 -0700] rev 22527
revset: reduce dict lookup in lazyset.__contains__ Avoid an extra dict lookup when we have to compute the value. No visible performance impact but this shaves the yak a few extra nanometers.
Fri, 25 Apr 2014 17:53:58 -0700 revset: do less lookup during spanset.__contains__
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 25 Apr 2014 17:53:58 -0700] rev 22526
revset: do less lookup during spanset.__contains__ Attribute lookup is slow in python. So this version is going to be a bit faster. This does not have a visible impact since the rest of the stack is much slower but this shaves the yak a few extra nanometers. Moreover the new version is more readable so it worth doing this change for code quality purpose. This optimisation was approved by a core python dev.
Tue, 16 Sep 2014 23:10:39 -0700 largefiles: simplify iteration over standins
Martin von Zweigbergk <martinvonz@gmail.com> [Tue, 16 Sep 2014 23:10:39 -0700] rev 22525
largefiles: simplify iteration over standins Instead of iterating over all files in the context and ignoring those that are not standins, pass a standin-matcher to the context and iterate over only the files matching. Apart from making the intent clearer, this implementation will also benefit from any future optimizations done to the manifest walking code.
Tue, 16 Sep 2014 22:50:38 -0700 largefiles: avoid using 'lfiles' variable for two purposes
Martin von Zweigbergk <martinvonz@gmail.com> [Tue, 16 Sep 2014 22:50:38 -0700] rev 22524
largefiles: avoid using 'lfiles' variable for two purposes The variable 'lfiles' is first used for a set of the names of all the large files. It is then overwritten with a tuple like the ones returned from status(). To reduce confusion, let's create a separate variable for the second use.
Mon, 22 Sep 2014 13:05:36 -0700 largefiles: remove unnecessary clearing of status fields
Martin von Zweigbergk <martinvonz@gmail.com> [Mon, 22 Sep 2014 13:05:36 -0700] rev 22523
largefiles: remove unnecessary clearing of status fields At the end of lfilesrepo.status(), we clear the lists of unknown, ignored and clean files, depending on the values of 'listunknown' etc. The lists originate from other calls to status(), and it is only 'clean' that may get updated after the calls. Let's remove the need to clear any of the lists by explicitly only adding to 'clean' when 'listclean' is true.
Wed, 24 Sep 2014 01:39:25 +0200 mq: simplify patchheader handling of the empty line before the diff
Mads Kiilerich <madski@unity3d.com> [Wed, 24 Sep 2014 01:39:25 +0200] rev 22522
mq: simplify patchheader handling of the empty line before the diff Don't try to append empty lines to HG patch headers - instead, add them in str method. This minor change removes some apparently redundant code and makes the code more robust.
Wed, 24 Sep 2014 01:36:44 +0200 mq: write '# Parent ' lines with two spaces like export does (BC)
Mads Kiilerich <madski@unity3d.com> [Wed, 24 Sep 2014 01:36:44 +0200] rev 22521
mq: write '# Parent ' lines with two spaces like export does (BC) This aligns "Parent" node IDs with "Node ID" node IDs.
(0) -10000 -3000 -1000 -300 -100 -16 +16 +100 +300 +1000 +3000 +10000 tip