Fri, 03 Apr 2015 14:41:18 -0700 repoview: avoid processing the same rev twice in _getstatichidden
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 03 Apr 2015 14:41:18 -0700] rev 24620
repoview: avoid processing the same rev twice in _getstatichidden If a rev had multiple children, it would be added to the heap multiple times. We now ensure it is added only once.
Fri, 03 Apr 2015 14:37:52 -0700 repoview: skip public parent earlier in _getstatichidden
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 03 Apr 2015 14:37:52 -0700] rev 24619
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.
Fri, 03 Apr 2015 14:36:05 -0700 repoview: directly skip public head in _getstatichidden
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 03 Apr 2015 14:36:05 -0700] rev 24618
repoview: directly skip public head in _getstatichidden Public heads have nothing to offer regarding hidden stuff, let's skip them.
Fri, 03 Apr 2015 14:35:53 -0700 repoview: simplify process in _getstatichidden
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 03 Apr 2015 14:35:53 -0700] rev 24617
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()):))'.
Fri, 03 Apr 2015 14:16:50 -0700 repoview: use a heap in _getstatichidden
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 03 Apr 2015 14:16:50 -0700] rev 24616
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.
Fri, 03 Apr 2015 13:58:12 -0700 repoview: update documentation of _getstatichidden
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 03 Apr 2015 13:58:12 -0700] rev 24615
repoview: update documentation of _getstatichidden In 2f7cb6e6acdd, the function name, role and return was changed. But the documentation was not. This fixes it.
(0) -10000 -3000 -1000 -300 -100 -30 -10 -6 +6 +10 +30 +100 +300 +1000 +3000 +10000 tip