10

Delphi 7 開発チームは、フォーム ファイル(dfm)をテキスト モードで保存し、ソース管理システム(Subversion)を使用して変更を追跡します。

ときどき、リビジョン間でフォーム ファイルがバイナリ形式に戻り、TortoiseMerge などの差分ツールにエラーが発生することに気付きました。

Subversion の変更ログを使用すると、以前は DFM ファイルがテキスト形式で保存されていたことがわかります。ソフトウェア開発者は、ストレージ ファイル形式を手動でバイナリに戻すことはありません。

あなたは同じことに遭遇しましたか?それは既知の問題ですか?

4

7 に答える 7

11

これは Delphi 7 で発生しますが、それ以降のバージョンでは修正されています。通常、IDE でフォームにアクセスするには、.pas ファイルを開き、フォーム ビューに切り替えます。フォームを右クリックすると、以前にこれを行ったことがある場合は、「テキスト DFM」がチェックされていることが示されます。

Delphi 7 IDE で .dfm ファイルを直接開くと、テキスト DFM がバイナリ DFM に切り替わるという前述の問題が発生します。例えば。File->Open->Somefile.dfm .. dfm を右クリックし、[View as Form] を選択します。フォームを右クリックすると、「テキスト DFM」のチェックが外されていることがわかります。

grep 検索結果である DFM を開いたときに問題が発生しました。これには私たちも困惑し、cvs の dfm がテキストとしてチェックインされたため、破損する可能性がありました。

于 2010-10-20T03:47:39.723 に答える
4

これは、IDEが混乱したときに発生することがあります。

通常、Delphi7IDE内でアクセス違反が発生した後に開始されます。

IDE内のDelphiエディタバッファの1つまたは複数が読み取り専用になることもあります(ディスク上のファイルはまだ読み取り/書き込み中です)。

この動作は、Delphi 5または6よりもはるかに少なくなりますが、Delphi7で発生することもあります。

アクセス違反が発生したらすぐにDelphi7IDEを再起動するのが最善の方法です。

于 2009-05-11T00:04:24.187 に答える
2

誰かが異なるバージョンのDelphiでプロジェクトを開いた場合(またはデフォルト設定を変更した場合)、フォームを異なる形式で保存する場合があります。

于 2009-05-09T08:21:39.690 に答える
2

TortoiseSVN のビルトイン マージ ツールの代わりに Beyond Compare の使用を調査することに興味があるかもしれません。Beyond Compare は Delphi で記述されており、バイナリ DFM の読み取り方法をネイティブに認識しています。これは、DFM が Subversion にバイナリまたはテキストで保存されているかどうかの問題が少なくなる (または問題がなくなる) ことを意味します。Beyond Compare V3 は 3 方向のマージも行うため、複数のコミットなどを簡単にマージできます。バイナリ DFM を比較する機能を無視しても、TortoiseSVN の組み込みツールよりもはるかに優れた diff ビューアーです。強くお勧めできますし、非常に安価です (Scooter Software とはまったく関係がありませんが、非常に満足している顧客です)。

スクーター ソフトウェア

于 2009-05-10T21:06:36.100 に答える
1

私たちは確かにこれに遭遇しました。D7のみを使用しています。

年に半ダースほどしか発生しないため、真相を突き止めることはできませんでした。迷惑ではありますが、かなり簡単に修正できます。

Larsの回答に興味がありましたが、次回発生したときにそれが原因であるかどうかを確認します.

于 2009-05-09T20:56:55.113 に答える
1

この問題もときどき発生します。これは、DFM のソース (Alt-F12) を参照してから、Visual Source Safe 操作 (チェックインなど) を実行することに関連しているようです。

于 2009-05-17T05:40:26.610 に答える