tests/test-fileset.t
changeset 38689 ff5b6fca1082
parent 38686 131aae58a316
child 38690 5d9749c598f0
equal deleted inserted replaced
38688:2570dca0f21c 38689:ff5b6fca1082
   140   c3
   140   c3
   141   $ fileset 'ignored()'
   141   $ fileset 'ignored()'
   142   .hgignore
   142   .hgignore
   143   c2
   143   c2
   144   $ fileset 'hgignore()'
   144   $ fileset 'hgignore()'
   145   a2
   145   .hgignore
   146   b2
   146   a2
       
   147   b2
       
   148   c2
   147   $ fileset 'clean()'
   149   $ fileset 'clean()'
   148   b1
   150   b1
   149   $ fileset 'copied()'
   151   $ fileset 'copied()'
   150   c1
   152   c1
   151 
   153 
   180 
   182 
   181 Test files properties
   183 Test files properties
   182 
   184 
   183   >>> open('bin', 'wb').write(b'\0a') and None
   185   >>> open('bin', 'wb').write(b'\0a') and None
   184   $ fileset 'binary()'
   186   $ fileset 'binary()'
       
   187   bin
   185   $ fileset 'binary() and unknown()'
   188   $ fileset 'binary() and unknown()'
   186   bin
   189   bin
   187   $ echo '^bin$' >> .hgignore
   190   $ echo '^bin$' >> .hgignore
   188   $ fileset 'binary() and ignored()'
   191   $ fileset 'binary() and ignored()'
   189   bin
   192   bin
   190   $ hg add bin
   193   $ hg add bin
   191   $ fileset 'binary()'
   194   $ fileset 'binary()'
   192   bin
   195   bin
   193 
   196 
   194   $ fileset 'grep("b{1}")'
   197   $ fileset 'grep("b{1}")'
       
   198   .hgignore
   195   b1
   199   b1
   196   b2
   200   b2
   197   c1
   201   c1
   198   $ fileset 'grep("missingparens(")'
   202   $ fileset 'grep("missingparens(")'
   199   hg: parse error: invalid match pattern: (unbalanced parenthesis|missing \)).* (re)
   203   hg: parse error: invalid match pattern: (unbalanced parenthesis|missing \)).* (re)
   352   a2
   356   a2
   353   $ fileset -r1 'deleted()'
   357   $ fileset -r1 'deleted()'
   354   $ fileset -r1 'unknown()'
   358   $ fileset -r1 'unknown()'
   355   $ fileset -r1 'ignored()'
   359   $ fileset -r1 'ignored()'
   356   $ fileset -r1 'hgignore()'
   360   $ fileset -r1 'hgignore()'
   357   b2
   361   .hgignore
   358   bin
   362   a2
       
   363   b2
       
   364   bin
       
   365   c2
       
   366   sub2
   359   $ fileset -r1 'binary()'
   367   $ fileset -r1 'binary()'
   360   bin
   368   bin
   361   $ fileset -r1 'size(1k)'
   369   $ fileset -r1 'size(1k)'
   362   1k
   370   1k
   363   $ fileset -r3 'resolved()'
   371   $ fileset -r3 'resolved()'
   401 
   409 
   402   $ fileset 'eol(dos)'
   410   $ fileset 'eol(dos)'
   403   dos
   411   dos
   404   mixed
   412   mixed
   405   $ fileset 'eol(unix)'
   413   $ fileset 'eol(unix)'
       
   414   .hgignore
   406   .hgsub
   415   .hgsub
   407   .hgsubstate
   416   .hgsubstate
   408   b1
   417   b1
   409   b2
   418   b2
   410   c1
   419   b2.orig
       
   420   c1
       
   421   c2
       
   422   c3
       
   423   con.xml
   411   mixed
   424   mixed
       
   425   unknown
   412   $ fileset 'eol(mac)'
   426   $ fileset 'eol(mac)'
   413   mac
   427   mac
   414 
   428 
   415 Test safety of 'encoding' on removed files
   429 Test safety of 'encoding' on removed files
   416 
   430 
   417   $ fileset 'encoding("ascii")'
   431   $ fileset 'encoding("ascii")'
       
   432   .hgignore
   418   .hgsub
   433   .hgsub
   419   .hgsubstate
   434   .hgsubstate
   420   1k
   435   1k
   421   2k
   436   2k
   422   b1
   437   b1
   423   b2
   438   b2
       
   439   b2.orig
   424   b2link (symlink !)
   440   b2link (symlink !)
   425   bin
   441   bin
   426   c1
   442   c1
       
   443   c2
       
   444   c3
       
   445   con.xml
   427   dos
   446   dos
   428   mac
   447   mac
   429   mixed
   448   mixed
       
   449   unknown
   430 
   450 
   431 Test detection of unintentional 'matchctx.existing()' invocation
   451 Test detection of unintentional 'matchctx.existing()' invocation
   432 
   452 
   433   $ cat > $TESTTMP/existingcaller.py <<EOF
   453   $ cat > $TESTTMP/existingcaller.py <<EOF
   434   > from mercurial import registrar
   454   > from mercurial import registrar
   435   > 
   455   > 
   436   > filesetpredicate = registrar.filesetpredicate()
   456   > filesetpredicate = registrar.filesetpredicate()
   437   > @filesetpredicate(b'existingcaller()', callexisting=False)
   457   > @filesetpredicate(b'existingcaller()', callexisting=False)
   438   > def existingcaller(mctx, x):
   458   > def existingcaller(mctx, x):
   439   >     # this 'mctx.existing()' invocation is unintentional
   459   >     # this 'mctx.existing()' invocation is unintentional
   440   >     return [f for f in mctx.existing()]
   460   >     existing = set(mctx.existing())
       
   461   >     return mctx.predicate(existing.__contains__, cache=False)
   441   > EOF
   462   > EOF
   442 
   463 
   443   $ cat >> .hg/hgrc <<EOF
   464   $ cat >> .hg/hgrc <<EOF
   444   > [extensions]
   465   > [extensions]
   445   > existingcaller = $TESTTMP/existingcaller.py
   466   > existingcaller = $TESTTMP/existingcaller.py