1

私が働いている会社は、小さな Perl および Bash スクリプトを多数作成して、データをソフトウェアで使用可能なものに変換します。これらのスクリプトは、他のコードと同様に変更できます。リポジトリのバージョン管理ではなくファイルのバージョン管理のために、CVS を提供しました。とにかく、スクリプトを開発から本番環境に移行するためのデプロイ ツールを考えています。本番サーバーには、スクリプトの md5 合計の 1 つがデータベース内の合計と一致しない場合、スクリプトを実行せず、適切な関係者に電子メールを送信するという独自の単純なバージョン管理システムがあります。

プログラマーに、スクリプトの最新の CVS バージョンを展開するよう強制したいと考えています。最新でない場合は、最初にバージョンをチェックインする必要があることを伝えるメッセージが表示されて終了するはずです。古いファイルを展開する必要がある場合があるかもしれません。それらは例外であり、そのように処理できます。

これを行うには何が最善ですか?「cvs diff」を実行するのと同じくらい簡単ですか?

4

2 に答える 2

1

ある種の配布スクリプトを作成する場合は、比較的単純なはずです

1) スクリプトは cvs リポジトリにコミットする必要があります

2) makefile (または使用するビルド システム) からスクリプトを呼び出すことをお勧めします。

make dist

dist ルールがスクリプトを呼び出します。
3) スクリプトが実行されます

 cvs up -An 

たとえば、出力をgrepにリダイレクトすることにより、出力を分析してMまたはCまたはAまたはRステータスを探します。

grep -c ^[MCAR] 

count > 0 の場合、問題が発生しています。

4) 上記のいずれかが見つかった場合、ビルド スクリプトは失敗します。

5)使用しているtarまたはその他の形式の配布を作成しない場合

古いバージョンをデプロイするには、デフォルトで -A をパラメータとして -A に設定し、たとえばシェル変数によってオーバーライドして -r tag-3.14.4 にすることができます。

于 2008-11-03T20:46:39.787 に答える
0

展開を行う内部ツールに取り組みました。これは企業向けに (そして SOX 規制に適合するように) 設計されているため、コードの展開は承認に依存していました。

このため、最新バージョンではなく、開発者がリクエストで指定したバージョンのコードをデプロイしました。その理由は、開発者が変更を加えてテストを行う必要があり、その間に他の変更が行われる可能性があるためです。これらの新しい変更はテスト (QA) フェーズを通過していませんが、開発者の元のバージョンは通過しているため、そのバージョンをデプロイします。

つまり、バージョン番号を指定できるように設計し、バージョン番号がない場合は最新のものをプッシュします。

于 2008-11-03T21:03:17.710 に答える