如何从 Phing copyTask 获取一组更改的文件?

How can I get a set of changed files from a Phing copyTask?

提问人:niekoost 提问时间:11/5/2020 更新时间:12/1/2020 访问量:20

问:

在提取最新版本的代码后,我使用 Phing 将文件从开发文件夹复制到实时应用程序文件夹。通常只有少数PHP文件被更改。

<copy verbose="true" todir="${targetpath}" id="copy.source" >
  <fileset dir="${sourcepath}" id="source.files">
    <include name="**/*.php" />
  </fileset>
</copy>

现在,我想获取已更改文件的列表,以便对它们运行完整性检查。理想情况下,此列表在复制文件之前可用,但这不是目前的主要问题。

有没有办法获取受 copyTask 影响的文件列表?比我可以在这些文件中的每一个上运行。php -l

我不想对所有文件运行检查,因为存储库中有数百个文件。

PHING的

评论


答:

0赞 Siad Ardroumli 12/1/2020 #1

您复制的所有文件在今天日期之前都有修改后的时间戳。 复制后,您可以使用选择器获取所有文件(修改后等于今天的文件)的列表。 像这样的东西会给你一个逗号分隔的文件列表,修改日期为今天。date

<copy verbose="true" todir="${targetpath}" id="copy.source" >
  <fileset dir="${sourcepath}" id="source.files">
    <include name="**/*.php" />
  </fileset>
</copy>
<fileset dir="${targetpath}" id="changed.files">
  <include name="**/*.php" />
  <date datetime="${TODAY}" when="equal"/>
</fileset>
<echo>changed files: ${toString:changed.files}</echo>