mercurial/revset.py
changeset 25102 bb2f543b48b5
parent 25024 263bbed1833c
parent 25094 8b99e9a8db05
child 25105 2f34746c27df
equal deleted inserted replaced
25100:d6e7ac651973 25102:bb2f543b48b5
  2093     "func": func,
  2093     "func": func,
  2094     "ancestor": ancestorspec,
  2094     "ancestor": ancestorspec,
  2095     "parent": parentspec,
  2095     "parent": parentspec,
  2096     "parentpost": p1,
  2096     "parentpost": p1,
  2097     "only": only,
  2097     "only": only,
  2098     "onlypost": only,
       
  2099 }
  2098 }
  2100 
  2099 
  2101 def optimize(x, small):
  2100 def optimize(x, small):
  2102     if x is None:
  2101     if x is None:
  2103         return 0, x
  2102         return 0, x
  2110     if op == 'minus':
  2109     if op == 'minus':
  2111         return optimize(('and', x[1], ('not', x[2])), small)
  2110         return optimize(('and', x[1], ('not', x[2])), small)
  2112     elif op == 'only':
  2111     elif op == 'only':
  2113         return optimize(('func', ('symbol', 'only'),
  2112         return optimize(('func', ('symbol', 'only'),
  2114                          ('list', x[1], x[2])), small)
  2113                          ('list', x[1], x[2])), small)
       
  2114     elif op == 'onlypost':
       
  2115         return optimize(('func', ('symbol', 'only'), x[1]), small)
  2115     elif op == 'dagrangepre':
  2116     elif op == 'dagrangepre':
  2116         return optimize(('func', ('symbol', 'ancestors'), x[1]), small)
  2117         return optimize(('func', ('symbol', 'ancestors'), x[1]), small)
  2117     elif op == 'dagrangepost':
  2118     elif op == 'dagrangepost':
  2118         return optimize(('func', ('symbol', 'descendants'), x[1]), small)
  2119         return optimize(('func', ('symbol', 'descendants'), x[1]), small)
  2119     elif op == 'rangepre':
  2120     elif op == 'rangepre':