ソフトウェア開発支援
IR情報 会社情報
image_toyo_ss_img_perforce_title_perforce.gif.gif
テクニカルノート044  
image_toyo_ss_img_all_line_yellow.gif.gif
image_toyo_common_spacer.gif.gif
シンボリックリンクとワークスペース・ルート
image_toyo_common_spacer.gif.gif
概要
image_toyo_common_spacer.gif.gif
UNIX シンボリックリンクと p4 コマンド
image_toyo_common_spacer.gif.gif
詳細
image_toyo_common_spacer.gif.gif
お使いの UNIX ファイルシステムにシンボリックリンクが存在しており、自分のワークスペース・ビューがシンボリックリンクされたディレクトリにある場合、コマンドラインに相対パス名が含まれていると、p4 コマンドから「not in client view(ワークスペース・ビューにありません)」との応答が返されることがあります。p4 コマンドは、ファイルがワークスペース・ビューにあるかどうかを決定する際、シンボリックリンクによって、誤ったパスをルートとして選択することがあります。
その理由の一つは、p4 コマンドは getcwd() の呼び出し結果よりも $PWD 環境変数を信頼することです。
image_toyo_common_spacer.gif.gif
次のコマンドを実行することによって、カレントディレクトリのマッピングを調べることができます。
image_toyo_common_spacer.gif.gif
	p4 where
image_toyo_common_spacer.gif.gif
また、次のコマンドを実行することによって、ワークスペースが見ている現在作業中のディレクトリを確認することができます。
image_toyo_common_spacer.gif.gif
	p4 info
image_toyo_common_spacer.gif.gif
両コマンドで表示されたディレクトリが一致しない場合、おそらく p4 コマンドは、誤ったパスをカレントディレクトリに使用していると思われます。p4 コマンドに -d オプションを使用することにより、明示的にカレントディレクトリを指定することができます。
image_toyo_common_spacer.gif.gif
例:
	p4 -d /tmp info
image_toyo_common_spacer.gif.gif
を実行すると、PERFORCE は現在作業中のディレクトリが実際にどこであるかにかかわらず、カレントディレクトリが /tmp であるかのように相対パス名を翻訳します。このメカニズムによって、ユーザは p4 コマンドに対して、基準とするディレクトリ名を渡すことができます。例えば、bash において以下のコマンドを実行するとします。
image_toyo_common_spacer.gif.gif
	alias p4='p4 -d `pwd`'>
image_toyo_common_spacer.gif.gif
bash がエイリアスを格納する前に不用意にバッククォートを解釈してしまわないように、シングル・クォーテションを使用するのを忘れないでください。こうすると PERFORCE は、$PWD に格納されたシンボリックリンクのパスではなく、「本当の」パスを参照します。
image_toyo_common_spacer.gif.gif
$PWD が正しく設定されている場合でも、export コマンドが必要な場合があります。例を示します。
image_toyo_common_spacer.gif.gif
	export PWD
image_toyo_common_spacer.gif.gif
シンボリックリンクに関連して、「not under client root(ワークスペース・ルートの下にありません)」または「not in client view(ワークスペース・ビューにありません)」というメッセージが表示される場合は、$PWD が設定されていることを確認し、さらに export コマンドを確実に実行します。ほとんどのシェルでは自動的に $PWD 変数を設定しますが、一部のシェルでは $PWD を使用する前に export を実行する必要があります。
image_toyo_common_spacer.gif.gif
image_toyo_common_spacer.gif.gif
代替ルート
image_toyo_common_spacer.gif.gif
バージョン 2002.2 のPERFORCEサーバで導入された代替ワークスペース・ルートを使用することにより、$PWD と CWD との違いやシェルの問題に対処するために、コマンドラインで回避策を使用する必要がなくなりました。現在は、単にシンボリックリンクを代替ルートに入力すれば、PERFORCE はエラーを返すことなく正常に処理を続行します。
image_toyo_common_spacer.gif.gif
しかし、ワークスペース・ルート配下でのシンボリックリンクの問題が、必ずしも解決されるわけではありません。そのため、必要に応じて $PWD 環境変数を設定し export を実行するか、-d オプションを使用する必要があります。

image_toyo_common_spacer.gif.gif
image_toyo_ss_img_all_btn_yellow_bgwhite2.gif.gif戻る

detail__vid--text.png

はい (2)
いいえ (4)

PAGE TOP

本ウェブサイトではサイト利用の利便性向上のために「クッキー」と呼ばれる技術を使用しています。サイトの閲覧を続行されるには、クッキーの使用に同意いただきますようお願いいたします。詳しくはプライバシーポリシーをご覧ください。