【P4D 2023.1】オーバーレイマッピングの仕様変更について
P4Dバージョンを2023.1以上のバージョンにアップグレードした後から、オーバーレイマッピングを行っているワークスペースで、オーバーレイされる側のファイルを編集できなくなりました。
編集しようとすると「can't edit file that is overlaid in client's View」のエラーが発生します。
//depot/prjA/... //depot/prj/...
+//depot/prjB/... //depot/prj/...
この例の場合、prjA以下のファイルが読み取り専用になっているように見えます。
P4D アップグレード前と同じ挙動にすることはできますか。
オーバーレイしたファイルの取り扱いについて、P4D 2023.1 で変更されました。
リリースノート#2419808 (Job #113805) ** 以前は、オーバーレイビューを持つクライアントパスに対するクエリは、 一致するすべてのディポパスに適用されていたため、単一のファイルに 対して実行されたコマンドが2つ(またはそれ以上)の結果を返す可能性が ありました。この動作は、クライアントパスが使用された場合、 一般的に単一の結果を返すことが期待されるコマンドは、 クライアントビューで指定された優先順位に従って、 クライアントファイルごとに1つのディポ結果のみを返すように変更 されました。ディポパスに対するクエリ、または一致するファイルごとに 複数のリビジョンを返すことができるクエリは、この変更の影響を 受けません。
この変更により、2行目のパスに存在するファイルのみが書き込み可能となるため、1行目にのみ存在するファイルは読み取り専用となります。
本変更が行われる前と同じ挙動とする場合、構成可能変数 map.overlay.legacy=1 を設定することで実現できます。
コマンド例) p4 -u super -p server:port configure set map.overlay.legacy=1 *superにはsuper権限を持ったユーザを、server:portにはHelix Coreサーバの接続先情報をご指定ください。
map.overlay.legacy はドキュメント化されていない(Undoc) 構成可能変数です。
ドキュメント化されていない機能に関するドキュメントについて p4 help undoc コマンドで確認いただくことができます。コマンド例) p4 -u super -p server:port help undoc *superにはsuper権限を持ったユーザ名を、server:portにはP4サーバの接続先情報を指定します。