これは、私が使用したソース管理システム ( Visual SourceSafe、CVS、ClearCaseなど) に関係なく、常に苦痛です。バイナリ .frx ファイルは、Visual Basic フォームを結合するときに常に問題を引き起こします。
私は知っています...私は知っています...なぜあなたはVisual Basicを使っているのですか...それを使って書かれたレガシーアプリケーションがまだたくさんあるからです.
これは、私が使用したソース管理システム ( Visual SourceSafe、CVS、ClearCaseなど) に関係なく、常に苦痛です。バイナリ .frx ファイルは、Visual Basic フォームを結合するときに常に問題を引き起こします。
私は知っています...私は知っています...なぜあなたはVisual Basicを使っているのですか...それを使って書かれたレガシーアプリケーションがまだたくさんあるからです.
弾丸を噛んでバージョン管理システムに含める必要があります。残念ながら、ソースの他の場所では入手できない情報が含まれています。(たとえば、ImageListコントロールに追加されたビットマップ。)これらのファイルを失うと、アプリケーションを正しく再構築できなくなります。
Frx のマージは大きな問題です。バージョン管理システムでロックが許可されている場合は、マージを避けるために frx ファイルで使用することをお勧めします。たとえば、Subversion はロックをサポートして、ビットマップやその他のバイナリ ファイルの編集に関する問題を回避します。
そうは言っても、私の会社と私は Visual Basic 6.0 CAD/CAM プロジェクトで Subversion を 5 年以上使用しており、frx マージで問題が発生したのは数回だけです。
いずれの場合も、解決するのは簡単なことでした。主に 1 人が自分のフォームのバックアップを作成し、カット アンド ペーストを使用して手動で問題を解決します。誰かが大量のビットマップを含むフォームの 1 つで主要な作業を行っている場合、それをロックして、プロジェクトのその部分をできるだけ早く終わらせるようにします。
PS Visual Basic の FRX の奇妙さを謝らないでください。他のパッケージでは、2 人が同じビットマップ、WAV、またはソフトウェアが依存するその他の種類のバイナリ ファイルを編集するたびに、同じ問題が発生します。
私は ClearCase に取り組んでいて、まったく同じ問題に出くわしました。Google クエリでここにたどり着きました。ここでの回答は、ClearCase でこれらのファイルを処理する方法に関する技術的な要点を実際には提供していないため、問題を解決するために今日行ったことを追加させてください。
問題:
.frx ファイルは ClearCase で「compressed_files」タイプで作成されており、これはマージをサポートしていないため、知らないユーザーを困惑させる競合が発生する可能性があります (また、CM チームのサポート コールが必要になります)。
解決:
従う全体的なスクリプトは、このIBM 技術情報で説明されています。
これら 2 つの新しいタイプへの参照は、この別のIBM 技術情報にあります。
私は個人的に .frx ファイルの COPY タイプを選択します
ClearCase Type Explorer を使用して新しいタイプを作成する必要があります。
どこかのテスト VOB で最初に新しいタイプを作成することをお勧めします。テストに満足したら、管理 VOB に新しいタイプを作成します。UCM で作業している場合、それは PVOB レベルになります。いずれの場合も、新しい型を Global として宣言してください。UCM で作業しておらず、管理 VOB がない場合は、それを使用するすべての個々の VOB で新しいタイプを作成する必要があります。
上記のテクニカルノートの指示に従ってください。
注意、重要:管理 VOB で新しいタイプを作成する前にテスト VOB で新しいタイプを作成した場合は、「下位」の VOB から新しいタイプを削除する必要があります (テスト VOB が管理 VOB の下にあると仮定します)。エレメント タイプを削除すると、このタイプのすべてのインスタンスが削除されるため、実際のファイルでテストするためにこの新しいタイプを作成しないでください。下位レベルの VOB からタイプを削除すると、それに関連付けられているすべてのファイルが削除されます。
重要なデータを失わないように注意してください。
このためには、「マジック ファイル」を変更する必要があります。(個々のクライアントごとに変更するのではなく) マジック ファイルへの変更を一元化することをお勧めします。サーバー (VOB サーバーなど) で一度変更し、「MAGIC_PATH」という環境変数を使用してそれを指すようにします。
MAGIC_PATH の場所にある default.magic ファイルをコピーして名前を変更したら、.frx ファイルの定義を変更する必要があります。
デフォルトのマジック ファイルには、実際には 2 つのエントリがあります。
(...)
# Match non-printable files by name
(...)
vb_form_compiled vb_derived compressed_file : !-printable & -name "*.[fF][rR][xX]" ;
(...)
# assumed to be binary
(...)
vb_form_compiled vb_derived compressed_file : -name "*.[fF][rR][xX]" ;
両方にコメントを付けて、マジック ファイルの最後のエントリの前に次の行を追加しました。
# New COPY type:
frx_visual_basic vb_derived COPY : -name "*.[fF][rR][xX]" ;
# catch-all, if nothing else matches
compressed_file : -name "*" ;
#EOF
MAGIC_PATH 環境変数を定義するすべてのクライアントは、それを適切に選択する必要があるため、.frx サフィックスで作成された新しいファイルはすべて「COPY」要素タイプになります。
cleartool find . -all -name "*.frx" -exec "cleartool chtype COPY %CLEARCASE_XPN%"
これにより、すべての *.frx ファイルの要素タイプが新しい COPY タイプに変更されます
すべての VOB に対してこれを行う必要があります。
注: この回答の最初のテクニカル ノートには、「このタイプのマージ (つまり、COPY) は、Rational ClearCase Remote Client ではサポートされていません」と記載されています。ClearCase 7.0.1 の時点で、今日行ったテストから、これは現在サポートされています。