Page tree

 コンテンツ

質問

"p4 reconcile"の処理を高速化できるオプションはありますか?

回答

"-m"オプションを使用することで、パフォーマンスが向上する可能性があります。

Helixサーバは通常、ファイルのダイジェストを使用して、ワークスペースのファイルがディポの最新リビジョンのファイルと相違があるか判断します。そのため、ファイル数が多くなるとダイジェストの計算に時間がかかります。

"-m"オプションを使用すると、ワークスペース内にあるファイルの更新時刻と、ファイルがサブミットされた時刻を比較してファイルに変更があったかを判断します。更新時刻(タイムスタンプ)が同じ場合、ダイジェストの計算をスキップするので、"p4 reconcile"処理の時間短縮が見込めます。

更新時刻比較によるダイジェスト計算のスキップによる実行時間の短縮のため、
ファイルの追加・削除には関係しません。

■ リネーム・移動されたファイルの検出時間を短縮する

"p4 reconcile"は、リネーム・移動が行われたファイルが存在する場合、以下の処理をしています。

元ファイルが存在しないことが検出される
      ↓
検出した存在しないファイルと似たファイルを検索する
      ↓
似たファイルが見つかった場合、元ファイルを「移動/削除」、見つかったファイルを
「移動/追加」としてマーキングする

そのため、リネーム・移動されたファイルが多いと処理に時間がかかります。
リネーム・移動されたファイルが多い場合は、以下のいずれかの方法により"p4 reconcile"の高速化を図ることができます。

1."-a""-ed"オプションを使用し、"p4 reconcile"を2回に分けて実施する

① "-a"オプションを使用し、追加されたファイルを検出します

実行コマンド例

p4 -p server:port reconcile -m -a <path>

 ※ server:port:対象のHelixサーバの情報
 ※ -a:追加されたファイルを検出し、作業状態にするオプション

② "-ed"オプションを使用し、編集・削除されたファイルを検出します。
  手順①で検出されたファイルに似たファイルを検索する処理時間が短縮できます。

実行コマンド例

p4 -p server:port reconcile -m -ed <path>

 ※ -e:編集されたファイルを検出し、作業状態にするオプション
 ※ -d:削除されたファイルを検出し、作業状態にするオプション

2.構成可能変数"dm.status.matchlines"を変更する

"p4 reconcile"実行時に存在しない元ファイルと似たファイルを検索し、リネーム・移動として検出する際の判断に使用される、類似度の閾値を設定する構成可能変数が"dm.status.matchlines"です。

この値を"0"にすることで、リネーム・移動ではなく、常に削除・追加と認識するようになります。
設定については以下のページをご参照ください。

「非接続の作業を照合する」でファイルの移動/リネームをすべて「削除」「追加」として扱う