Loading
よくある質問

【P4D 2025.1】p4 reconcileの挙動変更

📅更新日: 2026-05-27🏷️P4p4Article ID: 000001999

概要

P4D 2025.1 から、p4 reconcile 実行時の move マッチング(リネーム/移動 検出) の動作が変更されました。

従来は、add と delete が同時に存在する場合、P4 サーバーが自動的に内容を比較し、類似ファイルを move/add・move/delete として関連付けていました。

P4D 2025.1 以降では、この move マッチング処理が デフォルトで無効 となり、明示的に -M (--match-moves) オプションを指定した場合のみ実行されます。

変更前(~2024.2)

p4 reconcile 実行時に、追加 (add) と削除 (delete) が混在している場合:

  • P4 サーバ側でファイル内容を比較
  • 類似している場合は自動的に:
    • move/delete
    • move/add
      のペアへ変換

p4 reconcile //...

結果
//depot/src/old.c#none - opened for move/delete
//depot/src/new.c#none - opened for move/add 

変更後(2025.1~)

p4 reconcile はデフォルトでは move マッチングを実施しません。

そのため、通常実行では:

  • 削除 → delete
  • 新規追加 → add

としてそのまま登録されます。


p4 reconcile //... 

結果
//depot/src/old.c#none - opened for delete
//depot/src/new.c#none - opened for add

move マッチングを有効にする方法

従来通り リネーム/移動 を検出したい場合は、新オプション -M を指定します。

基本構文

p4 reconcile -M //...

または:

p4 reconcile --match-moves //...

-M オプションの動作

-M を指定すると:

  • add
  • delete

として検出されたファイルを比較し、

  • ファイル内容
  • 類似性

を元にリネーム・移動の判定を行います。

条件を満たした場合:

delete → move/delete
add    → move/add

として再オープンされます。

並列 move マッチング (--parallel)

大規模ワークスペースでは move 判定処理に時間がかかる場合があります。

P4D 2025.1 以降のバージョンでは、--parallel=N を使用することで move マッチングを並列化できます。


p4 reconcile -M --parallel=8 //...


効果

  • ファイル比較処理を並列実行
  • CPUコアを活用
  • 大規模 な移動、リネーム時の性能改善

P4V の場合

P4V のプリファレンス設定に、移動したファイルの検出に関する設定が追加されています。

この設定を有効にすると、P4V からの Reconcile 実行時に -M 相当が使用されます。

 



読み込み中
【P4D 2025.1】p4 reconcileの挙動変更