5

現在すべてのファイルをコピーするscpデプロイメントを、前回のビルド以降に変更されたファイルのみをコピーするように最適化したいと思います。どういうわけか現在の設定で可能だと思いますが、どうすればいいのかわかりません。

私は次のものを持っています:

Project / src / blah / blah / <----編集中のファイル(この場合は主にPHP、一部の静的アセット)

プロジェクト/ビルド<-------ファイルをここにコピーするために使用するローカルビルドステップがあります

現在、必要なときにすべてのプロジェクト/ビルドをリモートサーバーにコピーするscpタスクがあります。

どういうわけか、この余分な「ビルド」ディレクトリを利用して、私が望むことを達成することは可能ですか?つまり、src/**とbuild/**の間の「差分」のみをアップロードしたいということです。どういうわけかこれをANTのファイルセットとして取得し、それをscpすることは可能ですか?

どういうわけか、サーバー上のファイルを削除したり、サーバー上のファイルをいじったりしても、ANTスクリプトは気付かないということですが、私にとっては問題ありません。

4

2 に答える 2

15

次のようなタグant scpを使用して、最後のプッシュ以降に変更されたファイルのみをコピーするように指示できます。modified

<scp trust="true" sftp="true"... >
  <fileset dir="${local.dir}">
    <modified>
      <param name="cache.cachefile" value="localdev.cache"/>
    </modified>
  </fileset>
</scp>

これを初めて使用すると、すべてのファイルが送信され、で宣言されたcachefileにタイムスタンプがキャッシュされますparam。その後、変更されたもののみを送信します。

sftpモードでテストおよび検証されています。

于 2010-12-27T22:09:05.160 に答える
0

代わりにrsyncを使用する必要があると思います。あなたの質問に答える次の記事を見つけました。

一言で言えば、rsyncは中断したところから再開し、sshを介してトンネリングできるはずです。

于 2010-03-29T17:06:58.967 に答える