2

特定のワークフローをセットアップしようとしていますが、rsync がどのように機能するか (または機能するかどうか) を理解するのに苦労しています。

私のセットアップはMac OS Xです。

SVN ディレクトリがあります。デプロイ スクリプトを実行すると、ファイルが統合 Apache サーバーに移動されます。ファイルに変更を加え、手動で SVN にコピーしています。

これを行った理由は、html、css、および javascript を編集しているときに、ブラウザーで変更をすぐに確認する必要があるためです。しかし、これを手動でコピーして追跡しようとすると時間がかかり、自動化したいと考えています。

私がやりたいことは、rsync を使用して、Apache Web ディレクトリで変更したファイルを特定し、それらのファイルのみを SVN にコピーすることです。

私はテストしているrsyncコマンドを持っていますが、私が実行しているように見える問題は、展開されたファイルのタイムスタンプがすべてSVNのものよりも新しいため、rsyncがすべてのファイルをコピーして戻すことです.新しいファイルとして。

diff も試してみたところ、ファイルの違いが検出されました。diff、grep、および cp の組み合わせを使用してこれを機能させることができるシェル スクリプトをまとめることができると思いますが、rsync がオールインワン ソリューションになるかどうかを確認したかったのです。

rsync -avuzn --exclude=web-inf/classes/ --exclude=web-inf/lib/ /var/www/web-inf /usr/local/src/svn/WEB-INF
4

4 に答える 4

0

また、自動展開を実験し、独自の rsync-script を作成した後... (使いやすいが、インストールが難しいため、DeployItに出会いました...試してみてください...

http://deployit.monavari.de/

于 2011-10-06T21:35:33.343 に答える
0

ここで理解できないのは、あなたが何をしているのかということです。一般的に言えば、自分のコンピューターで開発する必要があります。svn リポジトリは Sites ディレクトリに配置する必要があります。これにより、ローカルホストを介してブラウザーでサイトをライブで表示できます。これと同じ方法で Rails と git を使用します。私のローカル Ruby サーバーは localhost:3000 にアクセスし、開発を行い、自分が何をしているかを常に確認できます。次に、コーディングが適切なポイントに到達したら、git にコミットしてテスト サーバーにデプロイします。サイトが完成したら、本番環境に移動します。php/mysql でコーディングするときは、自分のローカル Apache サーバーでテストし、完了したら、テスト サーバーまたは運用サーバーに直接 ftp します。

これがあなたが働くべき方法です。テスト サーバーや運用サーバーからコピーする理由はありません。また、バージョン管理システムがすべての同期を行う必要があります。ローカルで開発し、リモートでテストしてから、本番環境にデプロイします。それが最善の方法です。

于 2009-10-02T02:35:05.360 に答える