我想使用 Phing 将文件从源文件夹同步到公用文件夹,但问题是当我使用
<copy todir="${libDir}">
<fileset dir="${gitDir}">
<include name="**"></include>
<exclude name="public/**"/>
</fileset>
</copy>
或
<filesync sourcedir="${gitDir}" destinationdir="${libDir}" verbose="true" checksum="true" />
该脚本不会从 ${libDir} 中删除文件中的文件,这些文件在 ${gitDir} 中已经不存在。我不想先删除孔目录,然后再复制所有文件。它应该有效,但需要更多时间。您知道如何同步文件夹并删除不存在的文件吗?
我找到了决定。我只是使用 linux 命令:
<exec command="rsync -a --delete --exclude '.git' --exclude '.svn' ${gitDir} ${libDir}" checkreturn="true" />
很容易在
Phing的任何地方使用"exec"来使用本机操作系统工具。
Phing 确实有一个 rsync 任务,它有一个"删除"参数。
使用 rsync 命令同步文件或目录。同步可以是 在同一台服务器上完成或从/到远程服务器。
<filesync
sourcedir="/var/www/development/project1"
destinationdir="/var/www/html/project1"
dryrun="true"
itemizechanges="true"
verbose="true"
checksum="true"
delete = "true" />
链接到 phing 文档 FileSyncTask