revset: optimize for destination() being "inefficient"
destination() will scan through the whole subset and read extras for each
revision to get its source.
--- a/mercurial/revset.py Tue Oct 11 04:39:47 2016 +0200
+++ b/mercurial/revset.py Mon Oct 17 19:48:36 2016 +0200
@@ -2595,7 +2595,7 @@
f = getsymbol(x[1])
wa, ta = _optimize(x[2], small)
if f in ('author', 'branch', 'closed', 'date', 'desc', 'file', 'grep',
- 'keyword', 'outgoing', 'user'):
+ 'keyword', 'outgoing', 'user', 'destination'):
w = 10 # slow
elif f in ('modifies', 'adds', 'removes'):
w = 30 # slower