Gitにおけるレビューファイルのマージ
概要
Gitにレビューファイルを格納する場合、『複数のユーザー』が『同じレビューファイル』に対して編集してコミットする場合があります。
その際にコンフリクトが発生すると、手動で解消してからコミットし直す手間がかかっていました。
競合とも言います。複数のユーザーが同じ個所を変更した場合、どちらかの変更を有効にするか決める必要があります。
Gitにおけるレビューファイルのマージ機能(LRMerge)を利用することで、そのような手間を解消し、他の格納物と同じ管理ができるようになります。
LRMergeをもっと知りたい方は、「LRMerge 機能紹介動画」を参照ください。
運用例
- Git に格納されたあるレビューファイルに対して、Aさん、Bさんがそれぞれでプルし、指摘を1件ずつ追加する。
- Aさんが変更をGitにコミットしてプッシュする。
- Bさんが変更をGitにコミットしてプッシュする。このタイミングでLRMergeが自動的にレビューファイルをマージし、マージされたファイルがプッシュされる。
- レビューファイルを開くと、AさんとBさんが追加した指摘がマージされ、計2件の指摘が追加された状態になっている。

インストール
LRMerge は Lightning Review 2.5以降のバージョンのインストーラからインストールされます。
インストール後の確認方法
インストール後にコマンドプロンプトで以下のコマンドを入力してください。
git config --global --list
以下の画面のように「merge.LRMerge.driver」の項目が表示されれば、正しくインストールされています。

操作方法
インストール後の設定は不要で、コンフリクトした際に自動でマージを行います。
コンフリクト発生時の動作は以下の通りです。
- 同じ指摘の同じフィールドに変更がない場合:変更内容をマージします。
- 同じ指摘の同じフィールドを変更した場合:該当するフィールドは自身の変更で上書きします。
指摘以外のフィールド(例:レビュー設定、メンバ設定、アウトラインなど)を変更した場合も同様です。「LRMerge」のロゴから始まる文字列が本ツールからの出力になります。
本機能でマージ処理対象とした レビューファイルごとに出力されます。コンフリクトの解消結果は、以下のマージログから確認できます。(赤枠部分)

レビューファイルを共有設定にすることで、マージ時に変更された内容を自動で反映できます。そのため、レビューファイルは予め共有設定にしておくことをお勧めします。
LRMerge によるマージ対象
- レビューファイル(拡張子 .revx)を対象とします。
レビューファイルを開いている間に作成されている中間ファイル(拡張子 .fileaccess)はマージ対象になりません。
(レビューファイルを閉じると自動で消えます) - レビューファイル以外のファイルは、Git組み込み標準のマージ処理が行われます。
Gitのクライアントツールによっては独自のGitを利用しているものがありますが、この場合はLRMergeは動作しません。
動作させるためには以下の処置を実施してください。
- 標準のGitをインストールする。
- Gitクライアントツールの設定を変更し、1を使うようにする。
- Lightning Review を修復インストールする。