如何获取现有文件集的子集

时间:2012-08-05 19:21:34

标签: php build phing

我的build.xml中有以下目标,准备由Phing处理:

<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 ,用于检查 .php xmllint 以检查 .XML )。

如何过滤掉这些?

当我尝试应用模式集或包含时,似乎只能使用新规则(忽略 includesfile 参数)。

2 个答案:

答案 0 :(得分:1)

由于 FileSet 接受filename作为嵌套代码,您可以使用它:

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

答案 1 :(得分:0)

对我来说,工作* .php而不是* / * .php

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