D656: revset: remove "small" argument from "_optimize"
yuja (Yuya Nishihara)
phabricator at mercurial-scm.org
Tue Sep 19 14:51:12 UTC 2017
yuja accepted this revision.
yuja added a comment.
This revision is now accepted and ready to land.
Queued, thanks.
(copied from the email thread)
On Fri, 8 Sep 2017 17:06:12 +0000, quark (Jun Wu) wrote:
>> yuja wrote in revsetlang.py:421
> > Any reason to choose 1 here and 0.5 for the others?
>
> I think there are 2 factors deciding weight:
>
> 1. Time complexity of the revset implementation
> 2. The returned revset size (maybe more important for `and` optimization)
>
> Here, `:` returns a larger revset so its weight is larger.
I don't think keeping (2) makes much sense because this patch effectively
removes the concept about the computed size. And it's far from being accurate
anyway. In theory, the computed size would be an input to the weight function
of the subsequent query, e.g.
W_contains(subset) = K_contains * estimated_size(subset)
That said, I don't have strong preference about this. So can you update the
commit message to include why 0.5 or 1.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D656
To: quark, #hg-reviewers, yuja
Cc: yuja, mercurial-devel
More information about the Mercurial-devel
mailing list