名実ともにGitを標準サポート

Eclipse 4.3 KeplerではEGitが3.0にバージョンアップしている。また、以前のバージョンでは一部のパッケージにしか標準搭載されていなかったEGitだが、KeplerではJavaEE向けのパッケージにも標準で搭載されるようになり、名実ともにEclipseでGitが標準でサポートされるようになったと言えるだろう。

また、昨年6月のJunoのリリース時からEGitは何度かバージョンアップしており、いくつかの新機能が追加されている。これらの機能の多くはその後リリースされたJunoのアップデートにも反映されているためJunoでも利用可能な機能も多いが、Junoのリリース時からの差分という意味で新機能をまとめて紹介していきたい。

EGitの新機能

まずは日常的に利用する機能から紹介していこう。最も利用頻度が高いであろうコミットダイアログでは、コミットだけでなく直接リモートリポジトリへのプッシュを行うことができるようになっている。

図1 : コミットダイアログ

Git StatgingビューではPackage Explorerなどから直接ファイルをドラッグ&ドロップすることが可能だ。余談だが、Git Stagingビューはローカルリポジトリの状態を簡単に把握でき、変更したファイルや差分を確認しながらコミットログを書くことができるなど、コミットダイアログでコミットするより便利な部分も多い。もちろんこちらからも直接リモートリポジトリへのプッシュが可能だ。EGitを使うのであれば、ぜひ活用してほしい。

図2 : Git Statgingビュー

また、Git Repositoriesビューではローカルリポジトリのクリーンを行うことができるようになった。リポジトリに追加されていないファイルをまとめて削除することができる。

図3 : リポジトリのクリーン

このほかにも細かい部分だが、EGit 3.0からの新機能としてファイルのリネームを認識するようになり、Historyビューでリネームされたものとして表示されるようになっている。また、リセットダイアログでHEAD^やRefSpec、ハッシュなどを指定できるようになった。

根本的な使い勝手は改善せず?

Gitはブランチの柔軟性が高く、使い方次第で複雑な運用も可能だ。GitのGUIクライアントの中にはこのGitの複雑さをある程度隠ぺいし、さほどGitに対する理解のないユーザにも利用できるよう工夫していたり、一般的な利用ケースであれば面倒な操作をしなくてもいいように配慮されているものもある。

これに対し、EGitはGitの複雑な部分がむき出しになっており、Gitの使い方をある程度理解していないと利用が難しいという側面があるのは否めず、EGit 3.0でもこの点については解消されていない。また、Gitに関する操作がTeamメニューに集約されておらず、たとえばファイルの差分を確認するにはCompare Withメニュー、変更を取り消すにはReplace Withメニューから行うなど、Gitの使い方を把握していても迷ってしまいそうなインタフェースになっている。

筆者の主観になるが、率直に言ってEGitは様々なGitのGUIフロントエンドの中でも、使いにくい部類に入るだろう。より直観的かつシンプルなインタフェースに改善されることを期待したい。

まとめ

Eclipseでは当初よりCVSがサポートされていたが、CVSの後継として標準的に利用されるようになったSubversionのサポートについては、SubversiveというSubversion用のプラグインがEclipse Foundationで開発されているものの、結局Eclipseに標準で搭載されることはなく、Eclipseのインストール後に追加インストールする必要があるという状況が続いていた。Pleiadesなどサードパーティ製のパッケージには標準で添付されているケースもあり、これがPleiadesなどを使用するメリットの一つでもあった。

しかし、ここ数年Githubの流行もあり、SubversionからGitへの移行が進んでいる。もはやGitは標準のCVSといっても過言ではないだろう。こういった状況を踏まえるとEGitは確かに使いにくい部分もあるものの、Eclipseが標準でGitをサポートするようになったのは大きな進歩と言えるのではないだろうか。今後はさらなる使い勝手の向上に期待したいところだ。