ad6dea5d96f219ab4cdd12155081b2ba1879dbe6: repoview: skip public parent earlier in _getstatichidden
Pierre-Yves David <pierre-yves.david@fb.com> - Fri, 03 Apr 2015 14:37:52 -0700 - rev 24681
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
repoview: skip public parent earlier in _getstatichidden Public changeset have nothing to offer regarding hidden changeset. Lets not add them to the heap at all.
cde57a8d8fe712942b71db02eb764e3c3f4bb3e3: repoview: directly skip public head in _getstatichidden
Pierre-Yves David <pierre-yves.david@fb.com> - Fri, 03 Apr 2015 14:36:05 -0700 - rev 24680
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
repoview: directly skip public head in _getstatichidden Public heads have nothing to offer regarding hidden stuff, let's skip them.
f76595f6ed7c5147cbaf8ab823b5636d66476de3: repoview: simplify process in _getstatichidden
Pierre-Yves David <pierre-yves.david@fb.com> - Fri, 03 Apr 2015 14:35:53 -0700 - rev 24679
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
repoview: simplify process in _getstatichidden Since all children are processed before their parents, we can apply the following algorithm: For each rev (descending order): * If I'm still hidden, no children will block me, * If I'm not hidden, I must remove my parent from the hidden set, This allows us to dynamically change the set of 'hidden' revisions, dropping the need for the 'actuallyhidden' dictionary and the 'blocked' boolean in the queue. As before, we start iterating from all heads and stop at the first public changesets. This ensures the hidden computation is 'O(not public())' instead of 'O(len(min(not public()):))'.
72d34c5a66141361ce7eb0d92d7e2315c21c9b2f: repoview: use a heap in _getstatichidden
Pierre-Yves David <pierre-yves.david@fb.com> - Fri, 03 Apr 2015 14:16:50 -0700 - rev 24678
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
repoview: use a heap in _getstatichidden Since we want to process all non-public changesets from top to bottom, a heap seems more appropriate. This will ensure any revision is processed after all its children, opening the way to code simplification.
9e558b788daa159df06de258478600e2bb60b77b: repoview: update documentation of _getstatichidden
Pierre-Yves David <pierre-yves.david@fb.com> - Fri, 03 Apr 2015 13:58:12 -0700 - rev 24677
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
repoview: update documentation of _getstatichidden In 2f7cb6e6acdd, the function name, role and return was changed. But the documentation was not. This fixes it.
241d98d84aed9af404d86e04df6ab4e41fd2225d: ssl: resolve symlink before checking for Apple python executable (issue4588)
Yuya Nishihara <yuya@tcha.org> - Sat, 04 Apr 2015 14:56:18 +0900 - rev 24676
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
ssl: resolve symlink before checking for Apple python executable (issue4588) test-https.t was broken at 07fafcd4bc74 if /usr/bin/pythonX.Y is used on Mac OS X. If python executable is not named as "python", run-tests.py creates a symlink and hghave uses it. On the other hand, the installed hg executable knows the real path to the system Python. Therefore, there was an inconsistency that hghave said it was not an Apple python but hg knew it was.
f8bc3de9b3435ba314e264e015daa5d5684bb732: test-subrepo-recursion: fix output on non-hardlink systems
Augie Fackler <augie@google.com> - Fri, 03 Apr 2015 18:19:24 -0400 - rev 24675
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
test-subrepo-recursion: fix output on non-hardlink systems There's a slight bug present where a topic doesn't get closed when it should. This isn't a regression, so I've made a note in the test file.
30fc7cf4306395ceeefb0385a2dc957b6a16f083: test-subrepo-recursion: set progress.changedelay really high
Augie Fackler <augie@google.com> - Fri, 03 Apr 2015 23:12:21 -0400 - rev 24674
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
test-subrepo-recursion: set progress.changedelay really high This avoids subtopics from showing up, which were introduced by my recent change that added progress bars to hardlink clones in some cases.
82fddb3d6bc0fdcc877996bd49a5d98cb866e213: test-clone: fix test expectations on systems without hardlinks
Augie Fackler <augie@google.com> - Fri, 03 Apr 2015 18:10:12 -0400 - rev 24673
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
test-clone: fix test expectations on systems without hardlinks
4a4018831d2ebc3c9cae9c6613e6a2497b4f0993: dirstate: use parsers.make_file_foldmap when available
Siddharth Agarwal <sid0@fb.com> - Wed, 01 Apr 2015 00:44:33 -0700 - rev 24672
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
dirstate: use parsers.make_file_foldmap when available This is a significant performance win on large repositories. perffilefoldmap: On Linux/gcc, on a test repo with over 500,000 files: before: wall 0.605021 comb 0.600000 user 0.560000 sys 0.040000 (best of 17) after: wall 0.280530 comb 0.280000 user 0.250000 sys 0.030000 (best of 35) On Mac OS X/clang, on a real-world repo with over 200,000 files: before: wall 0.281103 comb 0.280000 user 0.260000 sys 0.020000 (best of 34) after: wall 0.133622 comb 0.140000 user 0.120000 sys 0.020000 (best of 65) This visibly impacts status times on case-insensitive file systems. On the Mac OS X repo, status goes from 3.64 seconds to 3.50. With the third-party hgwatchman extension [1], 'hg status' on the same repo goes from 0.80 seconds to 0.65. [1] https://bitbucket.org/facebook/hgwatchman
670aaee7931cdff354af49371428ac371d241acb: parsers: add a C function to create a file foldmap
Siddharth Agarwal <sid0@fb.com> - Tue, 31 Mar 2015 23:32:27 -0700 - rev 24671
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
parsers: add a C function to create a file foldmap This is a hot path on case-insensitive filesystems -- it's guaranteed to be called every time 'hg status' is run. This is significantly faster than the equivalent Python code: see the following patch for numbers.
1c533e23ce9533d9c5556c34cbd4122f3a0161b0: util.h: define an enum for normcase specs
Siddharth Agarwal <sid0@fb.com> - Thu, 02 Apr 2015 19:17:32 -0700 - rev 24670
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
util.h: define an enum for normcase specs These will be used in upcoming patches to efficiently create a dirstate foldmap.
f5b527024fcc90b72b3467e5c59d74ab8b1c30e7: perf: make measuring foldmap perf work again
Siddharth Agarwal <sid0@fb.com> - Thu, 02 Apr 2015 19:13:50 -0700 - rev 24669
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
perf: make measuring foldmap perf work again Rev 25c1d3ca5ff6 split the foldmap into two, but I forgot to update perf for the changes.
e4a733c34bc64a0c1def98649d04798bf7b2cc2e: parsers._asciitransform: also accept a fallback function
Siddharth Agarwal <sid0@fb.com> - Tue, 31 Mar 2015 23:22:03 -0700 - rev 24668
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
parsers._asciitransform: also accept a fallback function This function will be used in upcoming patches to provide a C implementation of the function to generate the foldmap.
98744856b7d3f0831ac4fe91c3c5fceb7edfdcf8: util: add normcase spec and fallback
Siddharth Agarwal <sid0@fb.com> - Wed, 01 Apr 2015 00:38:56 -0700 - rev 24667
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
util: add normcase spec and fallback These will be used in upcoming patches to efficiently create a dirstate foldmap.
ce8dd4fd2d5dac8b0d3eb78bb79d869a2e11f98e: hgk: display committer name when set by hg-git
Andrew Shadura <andrew@shadura.me> - Fri, 03 Apr 2015 22:44:25 +0200 - rev 24666
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
hgk: display committer name when set by hg-git
e74f819e9160f8529c1238fa5b9c9860f119d68b: jsonchangeset: set manifest node to "null" for workingctx
Yuya Nishihara <yuya@tcha.org> - Sat, 14 Mar 2015 20:16:35 +0900 - rev 24665
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
jsonchangeset: set manifest node to "null" for workingctx Unlike changeset_printer, it does not hide the manifest field because JSON output will be parsed by machine where explicit "null" will be more useful than nothing.
201caa10536b533759b21eddbf540c638227e68d: jsonchangeset: set rev and node to "null" for workingctx
Yuya Nishihara <yuya@tcha.org> - Sat, 14 Mar 2015 20:15:40 +0900 - rev 24664
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
jsonchangeset: set rev and node to "null" for workingctx
d80819f67d5961a91da723e29677c78f8992b789: templater: tell hggettext to collect help of template functions
Yuya Nishihara <yuya@tcha.org> - Fri, 03 Apr 2015 21:36:39 +0900 - rev 24663
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
templater: tell hggettext to collect help of template functions
ea24cf92557a5a30c4d8d8f8555ad57003afb02a: treemanifest: disable readdelta optimization
Martin von Zweigbergk <martinvonz@google.com> - Tue, 10 Mar 2015 09:57:42 -0700 - rev 24662
Push 12 by gszorc@mozilla.com at Wed, 15 Apr 2015 21:42:54 +0000
treemanifest: disable readdelta optimization When tree manifests are stored with one revlog per directory and loaded lazily, it's unclear how much readdelta will help. If only a few files change, then only a small part of the full manifest will be loaded, and the delta chains should also be shorter for tree manifests. Therefore, let's disable readdelta for tree manifests for now.
(0) -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 tip