テクニカルノート012  


あるディレクトリ配下のファイルを一括で登録する方法

まず、追加しようとしているファイルは、クライアント・ワークスペースの中になければなりません。つまりそれらのファイルを、事前にクライアント・ワーク スペースの中に作成しておくか、事前に別の場所からクライアント・ワークスペースにコピーしておかなければなりません。

以降のステップは、使用しているプラットフォームと実行しているPERFORCEクライアント・プログラムに依存します。


P4(PERFORCEコマンドライン・クライアント・プログラム)の場合:

ファイルを追加しようとしているディレクトリ・ツリーの先頭ディレクトリにおいて、以下のコマンドを実行します。 UNIXの場合:
find . -type f -print | p4 -x - add


上のようにfindコ マンドを実行すると、ファイルは検出しますが、シンボリックリンクは検出しません。もちろん、同様の方法でシンボリックリンクをPERFORCEに追加す ることもできます。しかしながら、シンボリックリンクは読み取り専用のエンティティであるということ、およびシンボリックリンクを編集することとそのシン ボリックリンクが参照するファイルを編集することは別のことである、ということを理解してください。

クライアント・ワークスペースに存在するシンボリックリンクを見つけ、 そのシンボリックリンクをバージョン管理の対象にするか否かを判断するには、クライアント・ワークスペースのルートから次のコマンドを実行します。:
ls -l `find . -type l -print`
(リンクを意味する "l" を指定します。)


よって、シンボリックリンクを追加するには、次のコマンドを実行します。:
find . -type l -print | p4 -x - add -t symlink


Windows上では、コマンドプロンプトから次のコマンドを実行します。:
dir /b /s /a-d | p4 -x - add


Macintosh上では、MPWシェルを使って次のコマンドを実行します。:
files -f -q -r -s | p4 -x - add


その他のオペレーティング・システムでは、もしファイル・リストを作成するための findfiles.perl スクリプトを実行できるPerl環境を持っているならば、それを使って次のように実行します。:

p4 -x filelist add




ここで、filelistはそのファイル・リストを持つファイルの名前です。別の方法としては、次のように実行することもできます。:

p4 add * */* */*/*


これを、存在するディレクトリ階層と同じ数だけ実行します。

以上を実行したとき、そのファイルが既に存在するため追加することができない、または、PERFORCEはディレクトリをバージョン管理しないため追加す ることができない、という警告が発生するかもしれませんが、これらの警告については無視して構いません。

この時点で、当該ファイルが“追加目的の作業状態”になります。これらのファイルをディポに登録するには、次のコマンド(またはGUIによる同等操作)によってサブミットを行います。:
p4 submit



P4Win(PERFORCE Windows用GUIクライアント・プログラム)の場合:
  • エクスプローラを開き、追加しようとするフォルダまたはファイルを選択します。
  • それらのフォルダまたはファイルを、P4Winの[作業中チェンジリスト]パネルにドラッグします。



ファイルタイプをマッピングする:

バージョン2000.1において、p4 add で決定されるファイルタイプはファイル名に基づいて選択できるようになりました。 p4 typemap コマンドが、ファイル名とファイルタイプのマッピングを管理します。もし、ファイル名がマッピング・テーブルのエントリに 合致したら、 PERFORCEによって自動決定されるファイルタイプをオーバライドし、設定したファイルタイプが採用されます。詳細は、 p4 help filetype を実行するか、PERFORCEコマンド・リファレンスにおけるp4 typemap の項をご覧ください。

タイプマップの機能については、2002.1以上のPERFORCEサーバおよび PERFORCEクライアントが必須です。
戻る