in perforceを実行すると、実行する必要がある場合sync
でも何も実行しないことが非常に頻繁に発生する可能性があります。強制同期 ( sync -f
) を実行すると、サーバーからすべてのファイルが盲目的に確実に同期されます。これは、大きなプロジェクトの場合には受け入れられません。
問題は、どのようにして高速同期を行うことができるかということです。
あなたの質問の重要な部分は、「たとえそうであっても」です。Perforce での私の (あまりにも) 長年の経験のすべてにおいて、通常の同期では期待どおりの結果が得られないという理由で習慣的に強制同期に戻るユーザーは、Perforce を正しく使用していません。
Perforce にハード ディスクの管理を任せる必要があります。サーバーは、ユーザーが所有しているファイルのバージョンを認識しているため、通常の同期では必要なものだけが取得されます。失敗した場合は、ほぼ例外なく、ユーザーが Perforce の外部 (例: Explorer) でファイルを変更、削除、追加、名前変更していることを示しています。
場合によっては、これを引き起こすシステムの異常 (PC の障害など) が発生することがありますが、これは必ずしもユーザーのせいではありません。しかし、これらは非常にまれです。したがって、上記の「習慣的に」修飾子を使用します。
何も異常なことをしていないと心から思う場合は、他のプロセスがこれらのファイルを調整している可能性があるかどうかを調べ始めてください。たとえば、システムを構築するときに奇妙なことを行い、構築時にファイルを変更しようとしますか? おそらく他の誰かがうっかり突っ込んでいるオープンなネットワーク共有がありますか? 干渉しているバックアップ システムはありますか?
それが役立つことを願っています。
他の回答で述べたように、デポから同期されたディレクトリツリーの「インスタンス」ごとに個別のクライアント(ワークスペース)を作成する必要があります。
デポから変更されたファイルのみを強制同期する場合は、次のようにします。
p4 diff -se ... | p4 -x - sync -f
p4 diff -sd ... | p4 -x - sync -f
警告:ローカルで変更されたファイル(現在のディレクトリとサブディレクトリ内)が上書きされます。
代わりに、いくつかのファイルを編集し、最初に編集のためにそれらを開くのを忘れた場合は、次のようにすることができます。
p4 diff -se ... | p4 -x - edit
デポとは異なるファイルを編集するために開きます。
この:
p4 diff -sd ... | p4 -x - delete
ローカルで削除されたファイルを削除するために開きます。
PERFORCEがワークスペースで何が起こっているかを追跡できなくなるような不整合を作成する場合は、「オフライン作業の調整...」機能(P4V)を使用する必要があります。
これにより、フォルダーの差分が実行され、不整合を解決するために必要なオプションが示されます。
一般に、常にPERFORCEを介してファイルを明示的にチェックアウトするようにしてください(編集用に開きます)。他のシステムに慣れていると、これは奇妙に感じます。
お探しのコマンドは p4 clean だと思います。
出典: http://www.perforce.com/perforce/r14.2/manuals/cmdref/p4_clean.html
「ワークスペースに存在するがデポにないファイルは、ワークスペースから削除されます。デポに存在するがワークスペースにないファイル。デポから同期されたファイルのバージョンがワークスペースに追加されます。変更されたファイルチェックインされていないワークスペース内のファイルは、デポから同期された最後のバージョンに復元されます。」