mercurial/revset.py
branchstable
changeset 25094 8b99e9a8db05
parent 24904 b5c227f3e461
child 25102 bb2f543b48b5
child 25265 e16456831516
equal deleted inserted replaced
25070:bd98d073a34f 25094:8b99e9a8db05
  2096     "func": func,
  2096     "func": func,
  2097     "ancestor": ancestorspec,
  2097     "ancestor": ancestorspec,
  2098     "parent": parentspec,
  2098     "parent": parentspec,
  2099     "parentpost": p1,
  2099     "parentpost": p1,
  2100     "only": only,
  2100     "only": only,
  2101     "onlypost": only,
       
  2102 }
  2101 }
  2103 
  2102 
  2104 def optimize(x, small):
  2103 def optimize(x, small):
  2105     if x is None:
  2104     if x is None:
  2106         return 0, x
  2105         return 0, x
  2113     if op == 'minus':
  2112     if op == 'minus':
  2114         return optimize(('and', x[1], ('not', x[2])), small)
  2113         return optimize(('and', x[1], ('not', x[2])), small)
  2115     elif op == 'only':
  2114     elif op == 'only':
  2116         return optimize(('func', ('symbol', 'only'),
  2115         return optimize(('func', ('symbol', 'only'),
  2117                          ('list', x[1], x[2])), small)
  2116                          ('list', x[1], x[2])), small)
       
  2117     elif op == 'onlypost':
       
  2118         return optimize(('func', ('symbol', 'only'), x[1]), small)
  2118     elif op == 'dagrangepre':
  2119     elif op == 'dagrangepre':
  2119         return optimize(('func', ('symbol', 'ancestors'), x[1]), small)
  2120         return optimize(('func', ('symbol', 'ancestors'), x[1]), small)
  2120     elif op == 'dagrangepost':
  2121     elif op == 'dagrangepost':
  2121         return optimize(('func', ('symbol', 'descendants'), x[1]), small)
  2122         return optimize(('func', ('symbol', 'descendants'), x[1]), small)
  2122     elif op == 'rangepre':
  2123     elif op == 'rangepre':