Eclipse EGitのコミット履歴機能
これはEclipse EGitの使い方講座の一部なので、そちらを参照されたい
Eclipse EGitのコミット履歴は多数の機能を持つのだが、これを(日本語で)説明してくれるところが見当たらないように思うので、ここでまとめてみる。
以下のことだ。特にボタンの意味が良くわからない。
ボタン機能
概要を以下に示す。
特に理解がしづらいのは、「エディターと選択を同期」ボタンと、4つのフィルター設定ボタンだ。この説明は一番最後にまわす。
最新の状態に更新
これは問題無いだろう、表示中のコミット履歴を最新の状態にする
履歴ビューのピン止め
これをONにしておくと、その履歴ビューは消去されなくなり、別のコミット履歴の表示の際には新たな履歴ビュー(タブ)が作成される。
こういうことになる。
OFFの場合には、
- Historyタブはただ一つだけ
- 他のプロジェクトのコミット履歴を表示しようとすると、その唯一のHistoryタブに表示されて、前のプロジェクトのコミット履歴は消える。
しかし、ピン止めONの場合は、
- ONにしてあるHistoryタブは消えず、もう一つタブが作成される。
以前の履歴を見る
既に閲覧した状態のいずれかを選択して見ることができる。
検索ツールバーを表示
単純にONにすると検索ツールバーが表示され、そこでコミット・コメントを検索できる。
該当するものすべてが太字で表示され、その間を上下矢印で移動できる。
リポジトリ切り替え
単純に、今現在EGitが認識している全リポジトリが表示され、その履歴が閲覧できるようになる。
クローズ状態のプロジェクトのリポジトリであっても一覧され、選択できてしまうので、「いちいちプロジェクトを開かずに履歴だけをみたい」という場合には有用かもしれない。
比較モード
ONの場合にリソースをダブルクリックすると比較エディタ。OFFの場合には通常のエディタで表示される。こんな具合だ。
もちろん「エディタ」とはいっても、この状態で編集することはできない。閲覧ができるのみだ。
全ブランチとタグを表示する
これがOFFの場合には、現在のブランチの履歴のみを表示する。例えば、masterではないブランチで作業している場合、masterとの関係(特にマージ状態)が表示されない。ONにすると、いつの時点でマージされたかが表示される。
このtaxブランチは以前にmasterにマージされているのだが、その後で二回コミットしていることがわかる。
当然だが、その二回分のコミットがどんな内容であったかは、それらの行(上位二行)をそれぞれクリックしてみれば閲覧できる。
選択状態とフィルター設定
ボタンの以下の部分について説明する。
概念としてはこうだ。
- コミット履歴ビューでは、常に何かのリソースが選択状態になっている。リソースとしては、プロジェクトでも良いし、ソースフォルダでも、あるパッケージでも、特定のファイルでもよい。
- その選択に関わらずすべての履歴を表示するのか、あるいは選択リソースに関わるものだけを表示するのかという「フィルター」を選択できる。
そして、ビューのトップに選択中のリソースが表示されている。履歴を開いた状態ではプロジェクトになっている。
選択追従するモードにする
「エディタと選択を同期」ボタンをONにしておくと、パッケージエクスプローラでの操作や、ファイルオープンの際に履歴ビュートップの選択リソースが変更される。
フィルター設定
その上でフィルター設定(4つのボタン)が効果を発揮する。
フィルター設定は4つのボタンがあるが、そのうちの1つが必ずON状態になる。つまりラジオボタンになっている。
英語のツールチップを翻訳すると左から、
- 選択中リソースを含む、リポジトリ中でのすべての変更を表示する。
- 選択中リソースを含む、プロジェクト中でのすべての変更を表示する。
- 選択中リソースの親フォルダにおけるすべての変更を表示する。
- 選択中リソースとその子のすべての変更を表示する。
になっている。要するにこういうことだ。
- 1, 2では、選択リソースとは無関係に、リポジトリあるいはプロジェクトのすべてのコミット履歴を表示する。
- 3, 4では、選択リソースに関わるものだけのコミット履歴を表示する。
ということだ。そして、(おそらくだが)リポジトリ=プロジェクトとするような使い方では、1, 2はまるで同じである。次に、3, 4の違いだが試してみたところでは、
- 3:選択リソースと同じフォルダにあるもののコミット履歴も表示する。
選択中リソースがJavaクラスであれば、同じパッケージの別のクラスのコミット履歴も表示される。 - 4:選択リソースのみのコミット履歴を表示する。
選択中リソースがJavaクラスであれば、そのファイルのコミット履歴のみが表示される。
ということだ。