tests/test-fileset.t
changeset 38832 ca4de8ba5b5f
parent 38831 b975c5801487
child 38864 73731fa8d1bd
equal deleted inserted replaced
38831:b975c5801487 38832:ca4de8ba5b5f
   200       m2=<predicatenmatcher pred=grep('b')>>]>
   200       m2=<predicatenmatcher pred=grep('b')>>]>
   201   a1
   201   a1
   202   a2
   202   a2
   203   b1
   203   b1
   204   b2
   204   b2
       
   205 
       
   206 Use differencematcher for 'x and not y':
       
   207 
       
   208   $ fileset -p optimized -s 'a* and not a1'
       
   209   * optimized:
       
   210   (minus
       
   211     (symbol 'a*')
       
   212     (symbol 'a1'))
       
   213   * matcher:
       
   214   <differencematcher
       
   215     m1=<patternmatcher patterns='(?:a[^/]*$)'>,
       
   216     m2=<patternmatcher patterns='(?:a1$)'>>
       
   217   a2
       
   218 
       
   219   $ fileset -p optimized -s '!binary() and a*'
       
   220   * optimized:
       
   221   (minus
       
   222     (symbol 'a*')
       
   223     (func
       
   224       (symbol 'binary')
       
   225       None))
       
   226   * matcher:
       
   227   <differencematcher
       
   228     m1=<patternmatcher patterns='(?:a[^/]*$)'>,
       
   229     m2=<predicatenmatcher pred=binary>>
       
   230   a1
       
   231   a2
       
   232 
       
   233 'x - y' is rewritten to 'x and not y' first so the operands can be reordered:
       
   234 
       
   235   $ fileset -p analyzed -p optimized -s 'a* - a1'
       
   236   * analyzed:
       
   237   (and
       
   238     (symbol 'a*')
       
   239     (not
       
   240       (symbol 'a1')))
       
   241   * optimized:
       
   242   (minus
       
   243     (symbol 'a*')
       
   244     (symbol 'a1'))
       
   245   * matcher:
       
   246   <differencematcher
       
   247     m1=<patternmatcher patterns='(?:a[^/]*$)'>,
       
   248     m2=<patternmatcher patterns='(?:a1$)'>>
       
   249   a2
       
   250 
       
   251   $ fileset -p analyzed -p optimized -s 'binary() - a*'
       
   252   * analyzed:
       
   253   (and
       
   254     (func
       
   255       (symbol 'binary')
       
   256       None)
       
   257     (not
       
   258       (symbol 'a*')))
       
   259   * optimized:
       
   260   (and
       
   261     (not
       
   262       (symbol 'a*'))
       
   263     (func
       
   264       (symbol 'binary')
       
   265       None))
       
   266   * matcher:
       
   267   <intersectionmatcher
       
   268     m1=<predicatenmatcher
       
   269       pred=<not
       
   270         <patternmatcher patterns='(?:a[^/]*$)'>>>,
       
   271     m2=<predicatenmatcher pred=binary>>
   205 
   272 
   206 Test files status
   273 Test files status
   207 
   274 
   208   $ rm a1
   275   $ rm a1
   209   $ hg rm a2
   276   $ hg rm a2