p4 retypeコマンドによるファイルタイプの変更について
P4サーバに登録済みのファイルについてファイルタイプだけを変更したいです。
P4Vの[ファイルタイプを変更]や、p4 edit -t <ファイルタイプ>コマンドでファイルタイプを変更すると、リビジョンが1つ増えてしまいます。
リビジョンを増やすことなくファイルタイプを変更する方法はありますか。
p4 retype コマンドを使用することで新しいリビジョンを追加することなくファイルタイプを変更することができます。
p4 retypeはUndocコマンドとなり、ドキュメント化されていません。
p4 help retypeコマンドやp4 help undocコマンドを実行することでコマンドの詳細を確認することができます。
p4 retypeはP4サーバからファイルを取得することなく、コマンド実行によりファイルタイプを変更するコマンドです。
例)//depot/bin/Build.mpw#1/1 <text> のファイルタイプを<binary>に変更する
変更前のファイルタイプ確認
>p4 fstat //depot/bin/Build.mpw
... depotFile //depot/bin/Build.mpw
... clientFile C:\Users\murayoshis\Perforce\super_SFL-murayoshis_1842\depot\bin\Build.mpw
... isMapped
... headAction add
... headType text
... headTime 1724716668
... headRev 1
... headChange 64
... headModTime 1715077791
... haveRev 1
変更
>p4 retype -t binary //depot/bin/Build.mpw
//depot/bin/Build.mpw#1 - text now binary
変更後のファイル情報
>p4 fstat //depot/bin/Build.mpw
... depotFile //depot/bin/Build.mpw
... clientFile C:\Users\murayoshis\Perforce\super_SFL-murayoshis_1842\depot\bin\Build.mpw
... isMapped
... headAction add
... headType binary
... headTime 1724716668
... headRev 1
... headChange 64
... headModTime 1715077791
... haveRev 1
リビジョン番号やサブミットされた時刻の情報は変更されず、ファイルタイプ情報のみ変更される結果となります。
ワークスペースにファイルを取得済みの場合、取得されている情報(db.have)については更新されないため、p4 sync -fなどを使って強制的にファイルの再取得を実行いただくことが必要となります。
・p4 retypeコマンドが例として登場するナレッジ
https://portal.perforce.com/s/article/3114
p4 snap、 p4 obliterate、他のp4 retype コマンドとの同時実行の際に安全性が担保されていないためメーカによるサポート対象ではないコマンドとなります。
これらのコマンドと同時に実行しない場合は安全に実行いただくことができます。
P4Vの[ファイルタイプを変更する]やp4 edit -t と異なる点は「リビジョンが増えない」点となります。
更新頻度の低いファイルの場合、リビジョンが無駄に増えないため、サーバのディスクスペース圧迫を予防できます。
また、メタデータのみが更新されるため、クライアントからサーバーにファイルを転送する必要がありません。