2015-06-13 10 views
0

Я хочу, чтобы синхронизировать файлы из исходной папки в общую папку с Phing, но проблема в том, когда я используюDeploy код с 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}. Не хочу сначала удалить папку с отверстиями, а затем скопировать все файлы. Он должен работать, но потребуется больше времени. Знаете ли вы, как я могу синхронизировать папки и удалять несуществующие файлы?

ответ

0

Я нашел решение. Я просто использую команду linux для этого:

<exec command="rsync -a --delete --exclude '.git' --exclude '.svn' ${gitDir} ${libDir}" checkreturn="true" /> 
0

Для использования собственных инструментов ОС легко использовать «exec» во всем мире в Phing.

У Phing есть задача rsync, у этого есть параметр 'delete'.

Синхронизирует файлы или каталоги с помощью команды rsync. Синхронизация может быть выполнена на том же сервере или с/на удаленный сервер.

<filesync 
    sourcedir="/var/www/development/project1" 
    destinationdir="/var/www/html/project1" 
    dryrun="true" 
    itemizechanges="true" 
    verbose="true" 
    checksum="true" 
    delete = "true" /> 

Ссылка на Phing документы FileSyncTask