4

すべての開発者が最新の環境でビルドおよびテストできるように、さまざまな場所にいる多くの開発者の間で、何十ものバイナリ ファイル (プロジェクトの実行可能ファイルと DLL) を定期的に同期する必要があります。プロジェクトの性質上、更新は頻繁にオンデマンドで行う必要があります (夜間の更新では十分ではありません)。これはきれいではありませんが、しばらくの間、これにこだわっています。

通常のバージョン (ソース) コントロール システムを使用することにしました。すべてをバイナリ ファイルとして入れ、テスト前に最新のものを取得し、テスト後に更新された DLL をチェックインします。

それは問題なく動作しますが、バージョン管理クライアントには意味をなさない多くの機能があり、人々は時々混乱します。

タスクにより適したツールはありますか? または、まったく異なるアプローチになる可能性がありますか?

アップデート:

厳密に統合されたプロジェクトではないことを明確にする必要があります-サードパーティのものを含む「プラグイン」のヒープを備えた拡張可能なシステムのようなものです。これらのモジュールとプラグインが、相互の最近のバージョンおよびコアと適切に動作することを確認する必要があります。提案された集中型ビルドは最初に検討されましたが、オプションではありません。

4

6 に答える 6

4

おそらくrsyncを見てみたいと思います。

すべての正しいパラメーターを使用して rsync への呼び出しを含む .CMD ファイルを作成し、人々がそれを呼び出せるようにするだけです。rsync は、ファイルのどの部分を転送する必要があるかを判断するのに非常に優れているため、大きなファイルが含まれている場合でも非常に高速です。

ただし、rsync が実行しないのは競合の解決 (または検出) ですが、説明したシナリオでは、rsync が処理するように設計されている中央の場所から読み取ることに似ています。

于 2008-09-12T08:56:07.893 に答える
3

別のオプションはユニゾンです

于 2008-09-16T05:24:00.647 に答える
1

継続的な統合と、ある種の集中型ビルド プロセスを検討する必要があります。あなたが現在のアプローチでどのような地獄を経験しているのか想像することしかできません。

明らかに、それはローカルファイルの同期を維持するのに役立ちませんが、プロセスに大きな問題があると思います.

于 2008-09-12T08:55:44.603 に答える
0

プロジェクトの構築は、長期的には解決策がすぐにうまくいくように、より適切に制御できるようにするための集中型プロセスである必要があります。とにかく、ここに私がすることがあります。

  • プロジェクトごとに、ソース ファイル、リソース、ドキュメントなどの通常のリポジトリを作成します。
  • リソースのリポジトリを作成します。各プロジェクトの最新のバイナリ バージョンと、必要なリソース、ファイルなどがあります。開発者がファイルを直接「参照」できるように、プロジェクトごとに適切なフォルダー構造を維持してください。
  • 実際の安定版リリースを保持する最終ビルドのリポジトリを作成します。これにより、チェックインされたソースから自動的に (可能であれば) 安定したファイルが取得されます。これは、実際の製品、統合テスト用の実際のバージョンなどを保持します。

完璧には程遠いですが、十分に確立されたプロトコルを定義することができます。ここで最新の dll をチェックインし、ここで最新のソースから「実際の」バージョンを生成します。

于 2008-09-12T09:46:48.303 に答える
0

実行可能ファイルとライブラリに「what」文字列を埋め込むのはどうですか。次に、必要なバージョンのリストをマニフェストと同期できます。

what 文字列の一部として CVS id 文字列を使用する傾向があります。

const char cvsid[] = "@(#)INETOPS_filter_ip_$Revision: 1.9 $";

コマンドの入力

what filter_ip | grep INETOPS

戻り値

INETOPS_filter_ip_$Revision: 1.9 $

ライブラリと実行可能ファイルのバンドルのバージョンが関連するマニフェストのリストと一致するかどうかを確認できるように、すべての成果物に対してこれを行います。

HTH。

乾杯、

ロブ

于 2008-09-12T09:48:10.670 に答える
0

Subversionはバイナリ ファイルを非常にうまく処理し、非常に高速で、スクリプト化可能です。 VisualSVNTortoiseSVNにより、Subversion の取り扱いも非常に簡単になります。

すべてのバイナリ ファイル (すべての開発者がプッシュおよび更新できる) を含む Subversion からチェックアウトされたフォルダーをセットアップし、コマンド ラインで「svn update」と入力するか、TortoiseSVN を使用します。フォルダーを右クリックし、「」をクリックします。 SVN Update」を実行すると、すべてのファイルが更新され、何が変更されたかがわかります。

于 2008-09-16T05:19:18.693 に答える