1

Webアプリケーションで作業する必要があります。バージョン管理には、次のような構造のディレクトリがあります。

appname/conf
appname/www
appname/etc
appname/keys
appname/lib
...

ただし、アプリケーションが機能するには、現在、システムディレクトリに存在している必要があります。

/etc/httpd/conf.d
/var/www/html
/etc/appname
/etc/pki/tls/
/usr/lib/perl5/...
...

VCされたコードを取得し、コードを本番環境(つまり、/ var / www / htmlなど)に配置するパッケージを作成するためのRPMがあります。インストール手順はありません。RPMを使用して即興で演奏することになっています(私が知っている理想ではありません)。

このような場合、誰もがアプリケーションをどのように編集し、バージョン管理機能(git diffなど)を維持し、アプリにすばやく変更を加えて実行できるようにしますか?アプリはPerlで書かれているため、コンパイル手順は必要ありません。

私が考えた方法は次のとおりです。

  • VCされたディレクトリで作業します(コードはすぐには実行されないため、インストール手順が必要です)
  • 最終的な場所でコードを処理します(したがって、コードの編集はすぐに機能しますが、コードを手動でVCされたdirに戻す必要があります)
  • VCのディレクトリへの変更を監視し、変更されたファイルを最終的な場所にインストールするファイルシステム監視プログラムを作成します(おそらくこのようなものが存在しますか?)
  • 私が忘れてしまった他の明白な方法、誰かが私に教えてくれることを願っています:-)

誰もがこのようなケースをどのように処理しますか?

4

2 に答える 2

0

ある種のテストサーバーでコードを処理しますが、コードは正しい場所にあります。その場合、バージョン管理はそれぞれの場所から必要なファイルを取得できる必要がありますが、準備が整うまで「最終」の場所に展開しません(したがって、基本的には「インストール」ステップになります。 )。

物事をより賢明なものに変更することは直接の選択肢ではないかもしれないので、システムディレクトリからVCディレクトリにシンボリックリンクすることは可能ですか?

于 2010-09-27T15:51:20.343 に答える
0

違いがあります:

  • バージョン管理:ソースを管理して配信を構築する場所(この場合、システムディレクトリにデプロイする必要のあるすべてのファイルのtar.gzにすることができます)
  • リリース管理:配信を受け取り、実行中の環境にコピー/デプロイします。

ある種の継続的インテグレーションプロセス(Hudsonなどのスケジューラーに基づく)は、VCを監視し、新しいコミットが行われるとすぐにビルド/デプロイするのに役立ちます。

于 2010-09-27T15:53:38.077 に答える