10

私は6か月間JavaAndroid開発にEclipseを使用しており、比較エディターが大好きです。ここ数日、私はハッキングをしていて、すべてのgitアヒルが一列に並んでいるか、物事がきれいできれいになっていて、古いバージョンのアプリを見つけることができるほど近くにあると思います。

しかし、最後の1、2日で、日食比較エディターは差分の表示を停止したようです。コミットされていないPlayThread.javaを右クリックし、Commit ...またはHEADまたはブランチなどと比較することを選択します。ファイルがどれほど類似していても、比較エディターの右側に1つの大きな白いバーが表示され、次の違いに移動すると、ファイル全体が強調表示されます。

gitを調べて、Eclipseの設定を比較しましたが、役立つものが見つかりません。

私の美しい比較エディターを再び機能させるための助けをいただければ幸いです。

4

4 に答える 4

14

何も表示されないJavascript比較に関しては、既知のバグがあります。

https://bugs.eclipse.org/bugs/show_bug.cgi?id=509820

回避策...

  • ウィンドウ>>設定>>一般タブ>>比較/パッチ
  • [構造を自動的に比較する]の横にあるチェックボックスの選択を解除します
于 2018-04-16T13:46:10.930 に答える
10

最新のEGit5.3.0(2020年2月、8年後)は、 Vivek回答Eclipse -> Preferences -> Text Editors -> Show whitespace charactersに記載されているものを使用して、比較エディターの右側を改善していることに注意してください。

Eclipseのテキスト比較が改善され、「空白を表示」がより多くの場合に機能するようになりました。

また、マージエディターと同じファイルで開いている別のエディターでのファイルの同時編集が改善され、Eclipseワークスペースにないファイルでもより適切に機能するようになりました。

https://wiki.eclipse.org/images/a/aa/EGit_Compare_Editor_Show_Whitespace.png-インデックス側の空白を示すEclipse(インデックスに対するワークスペース)でのJava比較のスクリーンショット

空白の表示と同時編集の両方は、EGitが比較を設定する方法(これは私たちが改善したものです)だけでなく、使用されている実際のエディターにも依存することに注意してください。これらのエディターはEGitの制御を超えています。

Eclipseワークスペースにないファイルでは、ファイルを別のエディターで開いたときにプラットフォームのバグ214351が発生する可能性があります。


元の回答(2012年5月):

比較エディタの右側に大きな白いバーが1つ表示されます。

つまり、Egitは、(ディスク上の)そのファイルのローカルコンテンツがコミットされたものとは完全に異なると見なします。
これが発生する典型的なケースの1つは、自動eol変換(Windows <=> Unix)の場合です。これが、私が常にに設定core.autocrlfしている理由falseです。
WindowsでのGitベータ版(msysgit)-UnixまたはDOSの回線終了」を参照してください。これらのeolをファイルで管理する方法については、「コードを使用したgit構成の配布
」も参照してください( EGitはまだfileをサポートしていません)。.gitattribute.gitattribute


この場合、OPmwenglerは次のように報告します。

さて、それでした。
私がそれを修正した方法は、Eclipse > Window > Preferences > General > Compare/Patch > General私がチェックしたそのページにありました " Ignore white space"そして今、エディターは私のdiffを表示します。
しかし、私はそのようなものをオフにするだろうと思いますautocrlf、私は両方のフレーバーを処理できないウィンドウで何も使用していないと思います

この「ホワイトスペースを無視する」も設定を尊重するようになったと述べているEgitバグ361503を参照してくださいcore.autocrlf


于 2012-05-05T00:15:39.887 に答える
2

以下の設定は、EclipseOxygenReleaseでも機能します。

これは構造化比較と関係があるようです。に

比較のより単純で明らかに機能するバージョンを使用してください。

  • ウィンドウ>設定>一般タブ>比較/パッチ
  • [構造を自動的に比較する]の横にあるチェックボックスの選択を解除します

ES6クラスのテキストレベルの差分をお楽しみください。

よろしく、Rasool Javeed Mohammad javeed.mca@gmail.com

于 2018-05-11T16:17:39.770 に答える
2

今日もやがてこの問題に巻き込まれました。毎回この問題を修正して先に進みますが、今回は根本的な原因を理解して修正しようとしましたが、私にとってうまくいった修正はこの質問への回答に含まれていないため、詳細を追加します:

私はEclipseでプラグインを使用していますが、問題はOPEGitと同じでした。Eclipse比較ツールは、ファイル全体が変更されたかのように、ブロック全体ではなく、違いを強調していませんでした。

最初に問題を理解しましょう。これはvseolに関連していることを知っていたCRLFのでLF、最初にそれを確認し、次のように可視性を有効にしました。

Eclipse->設定->テキストエディタ->空白文字を表示 ここに画像の説明を入力してください

上記で、[可視性の構成]をクリックします。

ここに画像の説明を入力してください

上の画像で強調表示されているように、[トレーリング]の下のチェックボックスを選択し、Carrier Return (CR)との両方に対して選択しますLine Feed (LF)

適用-保存して閉じます。私の場合、ファイルは次のようになりました。

ここに画像の説明を入力してください

これは、私がCRLFeolのようなウィンドウを持っていたことを示しています。これは、core.autocrlf設定していないためtrueデフォルトではEOL区切り文字について何も実行しようとしなかったためです(この場合は予想どおり)。falseGit

そしてこの段階まで、比較ツールはファイル全体を変更されたものとして表示していました。

今、私のために働いた修正に移動します。

IDEレルム内でこの修正を取得したかったので、最初に特定のファイルを次のようにUnix区切り文字に変換しました。 ここに画像の説明を入力してください

それから私のファイルはLF(Unix区切り文字)eolでなりました:

ここに画像の説明を入力してください

そして、比較ツールがデルタの強調表示を開始しました。

ここに画像の説明を入力してください

したがって、想定されていた問題は、CRLF(ウィンドウスタイルの)eolおよびeclipseコンパレータが、ファイル全体ではなくデルタを強調表示できなかったことが原因でした。

次に、各ファイルまたはパッケージをUnix区切り文字に変更する代わりに。Eclipse->環境設定->ワークスペースで更新しました ここに画像の説明を入力してください

これにより、eclipseは新しいファイルの行末を処理するUnixため、テキストファイルはWindows OSに固有ではない形式で保存され、異種の開発者デスクトップ間で最も簡単に共有されます。結局のところ、この比較ツールはこれまでになくうまく機能しました。

お役に立てれば。

于 2019-03-23T03:05:48.540 に答える