Git におけるレビューファイルのマージ
概要
Gitにレビューファイルを格納する場合、『複数のユーザー』が『同じレビューファイル』に対して編集してコミットする場合があります。
その際にコンフリクトが発生すると、手動で解消してからコミットし直す手間がかかっていました。
競合とも言います。複数のユーザーが同じ個所を変更した場合、どちらかの変更を有効にするか決める必要があります。
Gitにおけるレビューファイルのマージ機能(LRMerge)を利用することで、そのような手間を解消し、他の格納物と同じ管理ができるようになります。
LRMergeをもっと知りたい方は以下の動画を参照ください。
(画質設定を720p以上に設定して参照することを推奨します。)
運用例
- 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」のロゴから始まる文字列が本ツールからの出力になります。
本機能でマージ処理対象とした レビューファイルごとに出力されます。 -
コンフリクトの解消結果は、以下のマージログから確認できます。(赤枠部分)
レビューファイルを共有設定にして運用することをお勧めします。
これにより、レビューファイルを開いた状態でGit上からプルして保存した場合にも、ファイルが先祖返りする心配がありません。
共有設定することで、他のユーザーによる変更も取り込んでリポジトリへ反映します。
LRMerge によるマージ対象
- レビューファイル(拡張子 .revx)を対象とします。
レビューファイルを開いている間に作成されている中間ファイル(拡張子 .fileaccess)はマージ対象になりません。
(レビューファイルを閉じると自動で消えます) - レビューファイル以外のファイルは、Git組み込み標準のマージ処理が行われます。
注意事項
-
Lightning Review をインストールした後にGitをインストールした場合、そのままではLRMergeが動作しません。
Gitのインストール後、Lightning Review の修復インストールを実施してください。
これにより、LRMergeが動作するようになります。 -
Gitのクライアントツールによっては、標準のGitとは異なるGitを使用しているものがあります。
標準のGitとは異なるGitを使用するクライアントツールを導入している場合、LRMergeは動作しません。
LRMergeを動作させるためには、以下の処置を実施してください。- 標準のGitをインストールする。
- Gitクライアントツールの設定を変更し、1を使うようにする。
- Lightning Review を修復インストールする。