質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

2回答

6656閲覧

Eclipse EGitでHEAD改訂と比較できない

gonzares

総合スコア13

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

1グッド

1クリップ

投稿2016/06/09 14:56

編集2016/06/14 14:29

「Gitリポジトリ」でリポジトリを右クリック→「コミット」を選択するとコミット画面に
修正ファイル名は表示されるのですが、それをダブルクリックしても比較画面を表示してくれません。

git diff で差分があることは確認できています。

何か情報をお持ちの方いらっしゃいませんでしょうか。
よろしくお願いします。

###環境
Ubuntu12.04、Eclipse(Luna)、EGit(3.4.2.201412180340-r)

###追記
EGitプラグインのorg.eclipse.egit.ui.internal.CompareUtilsクラスでNullPointerExceptionが
発生していました(.logファイルにて確認)。
残念ながらファイルを持ち出せない環境で開発しているため、ソースを貼り付けます。
getMapping()がnullを返したようです。。

lang

1public static void compareHeadWithWorkspace(Repository repository, 2 IFile file) { 3 String path = RepositoryMapping.getMapping(file).getRepoRelativePath( 4 file);

Workspaceに対する設定の問題なのか、EGitプラグインの問題なのか時間のある時にもう少し調べてみます。

A-pZ👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eripong

2016/06/11 03:16

エラーログビューあるいは.logファイルに、何かエラーが出ていませんか?
guest

回答2

0

ベストアンサー

Bug 438450 - EGit cannot use the index for compare, replace ...
に似た現象ですね。

  • Modification of files is correctly detected, Staging view is populated.
  • Comparing any files with the index version shows an empty RHS (for all files)

辺りが一致しているように思います。このバグは、
Bug 460118 - Can't remove repositories from "Git Repositories" view
の重複のようで、シンボリックリンクを使っているプロジェクトで問題が発生するようです。

対象のソースがシンボリックリンク上にあったりしないでしょうか?その場合、一時的にシンボリックリンクではない場所に移して動作を確認できるでしょうか。

また、このコミットで修正されているようなので、EGitのバージョンを以下のいずれかのバージョンより新しくすることで解消するかも知れません。

v4.4.0.201606070830-r v4.4.0.201606011500-rc2 v4.4.0.201605250940-rc1 v4.4.0.201605041135-m1 v4.3.1.201605051710-r v4.3.0.201604071810-r v4.3.0.201603230630-rc1 v4.2.0.201601211800-r v4.2.0.201511101648-m1 v4.1.1.201511131810-r v4.1.0.201509280440-r v4.0.1.201506240215-r v4.0.0.201506090130-r v4.0.0.201506020755-rc3 v4.0.0.201505260635-rc2 v4.0.0.201505191015-rc1 v4.0.0.201505050340-m2 v4.0.0.201503231230-m1

シンボリックリンクを使っていないのなら、的外れな回答ですが、どうでしょうか?

投稿2016/06/14 22:33

eripong

総合スコア1546

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gonzares

2016/06/15 13:43

4.0.0.201506090130-r にバージョンアップしたところ解消できました。 こちらの環境ですが、シンボリックリンクは使用していませんが、C++プロジェクトがある リポジトリとは別のリポジトリにあるソースをリンクリソースとして取り込んでいます。 Eclipse内部ではシンボリックリンクと同じ扱いになっているのかもしれませんね。 回答いただき、ありがとうございました。
eripong

2016/06/15 23:35

ちょっとスッキリしない感じですが、解消して良かったです。
guest

0

(追記2)

この現象はバグのような挙動に見えます。

なのでこの回答はいまのところ、問題の解決にはなっていません。

以下の回答は操作の代替手段を記載したものですが、
原因が同じのようなので、今回のケースでは使えなさそうです。


(追記)

任意のリソース(プロジェクトでもフォルダー単位でも1ファイルでも可)を選択し、
右クリックで開いたメニューの"比較"→"HEAD 改訂"を実行すると、
複数ファイルの場合は"同期化"ビューが開き、差分がツリー表示されますので、
対象のファイルをダブルクリックすると、比較エディターが開きます。
1ファイルの場合は直接、比較エディターが開きます。

...

または、Git ステージングというビューを使えば、
diff, add, commitなどの操作を1つのビューでまとめて行うことができます。

操作にちょっとクセがあるのですが、対象のファイルを開いてからこのビューをフォーカスすると、
そのプロジェクトのステージング状態が表示されます。

具体的には、addしていない修正したファイル(ステージされていない変更)と、
addした修正ファイル(ステージされた変更)というペインに
それぞれファイルが表示されますので、比較したいファイルをダブルクリックすると、
HEAD改訂とdiffできます。

...


(最初の回答)

2つのコミットを比較できれば良い、ということでしたら、
以下の方法をお試しください。

まず、任意のリソース(プロジェクトでもフォルダー単位でも可)を右クリックし、
メニューの"チーム"→"ヒストリーに表示"でヒストリービューを開きます。

ヒストリービューにコミットがリスト表示されるので、比較したいコミットを2つ選んで、
右クリック→「相互比較」を選択します。

対象の比較エディターが表示されます。

投稿2016/06/09 15:22

編集2016/06/11 01:18
argius

総合スコア9388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gonzares

2016/06/10 23:01

回答ありがとうございます。 ローカルに一旦コミットすれば比較できるということですね。 例えばですが、テストのために暫定的に修正したコードをコミットしないようにチェックできない、事に困っています。 色々と試しているのですが、Eclipseのプロジェクト(今はC++で開発)が存在しないリポジトリで本現象が発生しているのでは。。と考えています。
argius

2016/06/10 23:29

回答欄に追記しました。 よく考えたら、「HEAD改訂と比較」ということは 未コミットと比較したいってことですね。 ズレた回答になってしまいすみませんでした。
gonzares

2016/06/11 01:01

追記ありがとうございます。 > 右クリックで開いたメニューの"比較"→"HEAD 改訂"を実行すると、 問題発生時、上記がグレーアウトされてしまいます。。
argius

2016/06/11 01:20

まだズレた回答だったみたいですね... Git ステージングの方もお試しいただけましたか? 現象を見る限りでは同じ結果になりそうですが... 「Gitリポジトリ」「直接比較」「Gitステージング」のいずれもダメであれば、 Eclipseのバグの可能性もあるのかも知れません。 もしくは何か環境が壊れた可能性もあります。 ダメ元で、 eclipse -cleanで起動してみて下さい。 あとは、Eclipseの再インストールか、 可能であれば新しいバージョンのEclipseを試してみて下さい。 Windows版ではそのような現象は見たことが無いので、 Linux版固有の問題ならばお役にたてないかもです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問