テクニカルノート038  


別のユーザのファイルを元に戻す



問題

別のユーザのワークスペースで作業状態にされているファイルを元に戻すには、どうすればよいでしょうか

解決策

自分が所有していない PERFORCE ワークスペースで作業状態にされているファ イルを元に戻すには、2つの方法があります。どちらの方法でも、PERFORCE のadmin または super の権限が必要です。

最も簡単な解決策は、作業状態のファイルを含むワークスペースを削除するこ とです。例えば、"p4 opened" で次のように表示される場合、

 
//depot/main/www/training/index.html#8 - edit default change (txt) by jim@stlouis

"stlouis" ワークスペースは以下のコマンドにより削除できます。

 
	p4 client -d -f stlouis

ワークスペースを削除すると、そのワークスペースによって作業状態にされて いるすべてのファイルが元に戻され、ワークスペースの所有リストが削除され ます。しかし、ワークスペースを削除しても、そのワークスペースに格納され ているファイルそのものは削除されません。削除されたワークスペースのファ イルシステムをクリーンアップするには、直接ファイルを消去しなければなり ません。

ワークスペースを削除せずに、ファイルを元に戻したい場合もあるでしょう。その場合、そのワークスペースを所有しているユーザを装って、p4 revert コ マンドを実行することができます。例を示します。

 
	p4 login user
	p4 -u user -c client -H host revert -k file


ここで、file は元に戻したいファイル、user はファイルを作業状態にしてい るユーザ、client はファイルが作業状態にされているワークスペース、host はそのワークスペースに関連付けられているホスト名です。

"p4 login user" はパスワードの入力を要求することなくそのユーザのログイ ン・チケットを与えます。繰り返しますが、admin または super の権限を持つ ユーザのみがこのように "p4 login" を使用できます。ログイン・チケットに よって、ワークスペースの所有者としての資格認定を得て、revert コマンドを実行することが可能です。p4 revert コマンドの実行を成功させるためには、ワークスペースおよびホストのフィールド (もしあれば) を、それぞれ -c お よび -H のグローバル・オプションを使用して指定することも必要です。最後に、revert コマンドに -k オプションを使用することにより、ワークスペース に存在するファイルの内容のまま、revert コマンドが実行されます。-k を使 用しない場合、revert はファイルの前の所有リビジョンのワークスペースに対して同期を実行します。

p4 revert -k は PERFORCE サーバのリリース 2005.2 で追加されました (変更#76292)。それより前のサーバ・バージョンでは、-k オプションは使用できま せん。その場合、装ったユーザのワークスペースの Root パスをローカル・シ ステムにマッピングすることが可能な場合にのみ、別のユーザのファイルを元に戻すことができます。元に戻したファイルを PERFORCE サーバがクライアン トのファイルシステムに書き込むことができなければ、revert は失敗します。

ユーザ・パスワードの再設定

revert を実行するために PERFORCEユーザおよびワークスペースを装う場合、PERFORCE 管理者は当該ユーザのパスワードを変更しなければならないかもしれ ません。PERFORCE 管理者は、単純に当該ユーザのパスワードを変更し、当該ユー ザを装ってログインし、それから当該ファイルを revert することができます。パスワードを再設定するには、次のように実行します。

リリース 99.1 以降:

 
	p4 passwd username

プロンプトが現れたら、新しいパスワードを入力します。

リリース 99.1 より前:

 
	p4 user -f username

ユーザ仕様のフォームにおいて、Password: フィールドにパスワードを入力し ます。


ロックされたワークスペース

変更しようとするワークスペースがロックされている場合、PERFORCE 管理者は、p4 client コマンドに -f オプションを指定することによって、強制的にワー クスペースを変更できます。例えば、次のように実行します。

 
	p4 client -f clientname

PERFORCE 管理者が -f オプションを使用すると、他のユーザが所有するロック されたワークスペースに対して、削除や編集が可能となります。一般ユーザの場合は、自身が所有するロックされたワークスペースに対してのみ、削除や編 集が可能となります。


 
戻る