VPN を介して新しいハードウェア/仮想マシンに Perforce のクリーンな同期を定期的に行う必要があります。プロジェクトが非常に大きいため、これには数時間かかる場合があります。既存のクライアントから最新のツリーを単純にコピーして、Perforce にこのツリーを使用するように指示する方法はありますか?
3 に答える
Perforceプロキシは正しい方法ですが、本当に必要な場合は、スイッチsync
を使用して、コマンドを介して要求したことを実行する方法があります。-k
-kフラグは、クライアントファイルの更新をバイパスします。これを使用して、クライアントワークスペースにすでにファイルがあるとサーバーに認識させることができます。通常、このフラグは、クライアント上のファイルが間違っている場合にPerforceサーバーを修正するために使用されます。このオプションを使用すると、クライアントの内容が間違っている場合にサーバーが混乱する可能性があります。
p4 sync -k // depot / someProject / .. ..
flush
の同義語である、を使用することもできますsync -k
。
p4フラッシュ//depot/ someProject / .. ..
ただ注意してください。最後の言葉を覚えておいてください。「...クライアントの内容について間違っている場合、このオプションを使用するとサーバーが混乱する可能性があります。」
Perforce Proxy は、この目的専用のローカル マシンを使用できると仮定すると、ほぼ間違いなく最適な方法です。
プロキシに関する便利なヒントは、(おそらくプロキシ マシン上に) ダミー クライアントを作成し、毎晩のタスクを開始して同期を実行するだけで、そのコンテンツを一晩更新することです。通常の同期で十分です。必要ありません。きれいなものであること。これにより、人々がチェックインした大きな変更が、最初にローカル同期を実行する必要があるときに必ずしも大きな遅延を引き起こすわけではありません.
プロキシとサーバーの間にライブ VPN 接続が必要であることに注意してください。プロキシはサーバーと通信して、適切なバージョンがキャッシュされているかどうかを判断する必要があります。そのため、プロキシはサーバーへのかなり低遅延のリンクを必要としますが、少なくとも実際のファイル転送を待つ必要はありません。
別の方法として、クライアント仕様 (ワークスペース) で圧縮オプションを使用することもできます。これにより、サーバーは各ファイルを送信前に圧縮するように指示され、p4 クライアントは自動的に解凍します。ここでのトレードオフは、サーバーとクライアントの両方の CPU 時間です。ただし、複数のローカル クライアントを同期したい場合は、最終的にはプロキシの方が優れたソリューションになると思います。
いいえ。ただし、次のことを行う必要はありません。クリーンなPERFORCE同期を実行する必要があるのはなぜですか。通常の同期の何が問題になっていますか?ツリーをクリーンアップする必要がある場合は、ツリーのコピーで作業してみませんか?
1つの代替方法は、VPN接続の端でp4proxyを実行することです。そうすれば、変更されていないファイルをVPN経由で転送する必要がなくなります。
エクスポートのみが必要な場合、つまり、エクスポートを最新の状態に維持したり、エクスポートから変更を送信したりする必要がない場合は、既存のチェックアウトをコピーするだけで、そのツリーに対してPERFORCEを使用することはできません。しかし、p4が実際にファイルをチェックアウトせずにチェックアウトしていることを、PERFORCEサーバーに納得させる方法はわかりません。