テクニカルノート021  


クライアントを「複製」して大規模なワークスペースを新規作成する

概要

新しいクライアント・ワークスペースをマスターから作成してデータを読み込む方法を示します。

詳細

新しいワークスペースを作成するとき、通常はp4 syncを使用してそこにファイルを取り込みます。 5人の人が新しいワークスペースを同期させる場合、PERFORCEサーバは同じファイルを5つの新しい ワークスペースすべてに送ります。 通常、あなたがPERFORCEサーバからファイルを同期する速度と、 それらを同僚からコピーする速度とは同じくらいです。しかし、あなたや同僚が皆、ネットワーク 接続が低速な環境で作業している場合、そのうちのだれかがワークスペースを同期させ、それ以外の 人はそのワークスペースを「複製」することにより、とりあえず開始させる方が適切であるかもしれません。 このノートでは、PERFORCEに正しく同期されていると思われるクライアントを生成するように、 ワークスペースを複製する方法を説明します。

このプロセスは、大部分がPERFORCEプロキシの使用に取って代わられています。

他の誰かのクライアント・ワークスペースを複製して、自分のワークスペースを新規に作成しようと していると仮定しましょう。ここでは他の人のクライアントを「マスター」クライアントと呼ぶことにします。 (マスター・クライアントには作業状態のファイルがないことが理想的ですが、ファイルが存在する場合は それを処理する方法が下に記述されています。)ここに、マスター・クライアントを複製する方法を示します。
  1. マスター・クライアント・ワークスペースの内容を、ディレクトリ構造などが維持された状態で自分のクライアント・ワークスペース領域にコピーします。
  2. マスター・クライアントをテンプレートとして使用して、新しいクライアント仕様を作成します。
            p4 client -t masterclient
                  
    エディタでは、クライアントのルート・ディレクトリと、マスター・クライアント・ワークスペースを コピーした場所とが一致するようにします。
  3. p4 sync の変異形である p4 flush は、あたかも同期を実行するかのように動作しますが、 実際にはファイルは一切転送されません。実際にはこのコマンドは、クライアントの情報を 更新して、ワークスペースにファイルがあるように示すだけです。p4 flush を実行して、 ファイルをマスター・クライアントのリビジョンへと同期させる操作をシミュレートしてみましょう。
            p4 flush @masterclient
                  
    (@masterclientリビジョンを指定すると、PERFORCEはマスター・クライアントの“have"リストを、 ラベルであるかのように使用します。)
この操作を実行すると、既に自分のワークスペース全体と同期済みであるかのように、 新しいディポ・ファイルの編集、サブミット、同期を行うことができます。

ただ、複雑なことが1つあります。ワークスペースにファイルをコピーしたときにマスター・クライアントで ファイルがチェックアウトされていた(作業状態であった)場合、同じファイルを自分のクライアント・ ワークスペースで作業状態にする(チェックアウトする)必要があります。そうしなければ、PERFORCEが ディポ内のファイルと同一であると判断したが実際には変更されている可能性のあるファイルを操作する ことになります。この状況は、「非接続で作業」していた場合と全く同様です。指示に従って、自分の ワークスペース内のすべての変更を表すチェンジリストを構築してください。
戻る