2012-08-05 51 views
1

我有以下相同的方法,通過Phing正在處理我的build.xml目標:如何獲得現有文件集的子集

<target name="syntax-test"> 
    <exec command="git diff --cached --name-only --diff-filter=ACMRTUXB" dir="./" escape="false" output="${TMP_DIR}/changed_files" /> 
    <fileset id="CHANGED_FILES" dir="./" includesfile="${TMP_DIR}/changed_files" /> 
    </exec> 

    <phplint haltonfailure="true" level="warning" deprecatedAsError="true"> 
     <fileset refid="CHANGED_FILES" /> 
    </phplint> 
</target> 

因爲我有很多的工具,我想只有上述所有的小部分運行文件 - 只在那些被添加/修改/等,我需要過濾這些。

這工作正常。

每個工具是非常特定的,並且可以被用於檢查只有特定的文件(如phplint用於檢查.PHPxmllint用於檢查.XML)。

如何過濾這些?

當我嘗試應用patternset或包括,似乎它被迫只能使用新規則(忽略includesfile參數)。

回答

1

由於文件集接受filename爲嵌套的標籤,你可以使用它:

<fileset id="CHANGED_FILES" dir="./" includesfile="${TMP_DIR}/changed_files"> 
    <filename name="**/*.php" /> 
</fileset> 
0

對我的作品* .PHP代替* /*.php

<fileset id="CHANGED_FILES" dir="./" includesfile="${TMP_DIR}/changed_files"> 
    <filename name="**.php" /> 
</fileset>