web-dev-qa-db-ja.com

ディレクトリ内のすべてのファイルを削除しました。どうすればそれらを取り戻すことができますか?

私はPERFORCEを初めて使用しますが、正直言って、私はそれを嫌っています。 c:\ works\perforceディレクトリに約20個のファイルがあり、それらすべてを選択してDeleteキーを押しました。削除する前にすべてチェックインしました。私はそれらを取り戻す方法を見つけようとして髪を引っ張ってきました(Perforceはすっごく直感的ではありません)が、私のようなn00bに目立つものは何もありません。
PERFORCEから最新のリビジョンをディレクトリに戻すにはどうすればよいですか?

18
PingPing

強制同期を行う必要があります。

コマンドライン:

$> p4 sync -f

P4V GUIの場合:

  1. 更新するディレクトリを右クリックします
  2. [リビジョンを取得]を選択します
  3. ダイアログで、「強制操作」をチェックします
  4. [リビジョンを取得]をクリックします
22
dwikle

PERFORCEサーバーは、前回プルしたファイルを追跡します。これは、次のsyncが、すべてのファイルをもう一度ではなく、最後の同期以降に変更されたファイルのみを取り込むようにするために行われます。

この動作をオーバーライドするには、-fオプションを使用する必要があります。

-fフラグは、クライアントがすでにファイルを持っている場合でも再同期を強制し、書き込み可能なファイルを上書きします。このフラグは、開いているファイルには影響しません。

コマンドラインクライアントを使用している場合は、同期するディレクトリから次のコマンドを実行できます。

p4 sync -f ...

sync -fは(ファイルを削除したとしても)それらのファイルに対応する変更をもたらさないため、openedファイルのリストを確認することもできます。

このコマンドは、開いているすべてのファイルを一覧表示する必要があります。

p4 opened ...

上記のリストにリストされているファイルのうち、削除したものがある場合は、sync -fを実行する前にそれらを元に戻す必要があります。

p4 revert <FILE1> <FILE2>
p4 sync -f ...

p4vを使用している場合は、 dwinkle で説明されている手順に従うことができます。

1. Right click the folder in your workspace
2. Choose `Get Revision` in the context menu.
3. Choose `Get Latest revision`
4. Check `Force Operation (replace file even if you already have the revision specified)
5. Click on `Get Revision` button to fetch the files.

p4vを使用して開いているファイルのリストを確認するには、保留中の変更リストのリストを確認する必要があります。特定のチェンジリストにファイルを配置していない場合は、defaultチェンジリストを確認する必要があります。以前に削除したファイルが表示されている場合は右クリックして、Revertを選択します。

9
Tuxdude

ファイルをチェックアウトしてから削除した場合。最新のPERFORCE(p4 sync -f)を取得する前に、フォルダーをrevert(p4 revert -a // ...)する必要があります。

5
resultsway

古いクライアントを気にしない場合、1つの解決策は新しいクライアントをプルダウンすることです。

p4 newclient
p4 sync

クライアントに同じ名前を付けたい場合は、他の人が述べているように強制同期を実行できます。

p4 sync -f

クライアントに同じ名前を付けたいが、ディレクトリがp4ワークスペースとして認識されなくなった場合は、クライアントを削除してから再作成する必要があります。

p4 -c <client_name> client -d <client_name>
p4 newclient
2
Gadget

別の方法:

p4 reconcilep4 revert //...

2
randy-wandisco

私の場合、すべてを試しましたが、すべてのファイルを元に戻すことができなかったため、ファイルを削除しようとしましたが、すべてを元に戻すことができませんでした。私は自分のPCを再起動し、オンラインで見つかった多数の解決策を試しました。最終的に、私の問題は、最新のP4Vアプリケーションへのアップグレード、昇格されたアクセス許可でのアプリケーションの実行、および強制的に最新の取得を行った後の昼食に行くことによって解決されました。

あなたが半日を無駄にした場合。上記を試してみてください。

0
N-ate

ディレクトリ内のすべてのファイルを削除しました。どうすればそれらを取り戻すことができますか?

私が偶然見つけたこれに対する1つの問題は、directoryを削除すると、p4 sync -fを使用して元に戻すことができないことです。ディレクトリの完全なクリーンバージョンが必要だったので、次のことを行いました。

rm -rf directory1

ただし、p4 sync -f directory1を実行すると、次のように出力されます。

directory1 - no such file(s).

私が見つけたのは、最初にディレクトリ内のfileを回復することです。

p4 sync -f directory1/some-file

不足しているディレクトリ内にある、次のファイルを使用して取得できるファイルの1つの名前を知っている必要があります。

p4 files //depot/some/path/directory1/\*

ファイル名の1つを取得したら、次の手順を実行します。

p4 sync -f directory1/some-file

これにより、directory1ディレクトリが作成されます。次に、作成したディレクトリ内で完全同期を実行できます。

cd directory1
p4 sync -f ...

これが他の誰かに役立つことを願っています。

  1. 親ディレクトリを右クリックします。
  2. コンテキストメニューの[調整]をクリックします。
    • 新しい変更リストを作成しましょう。
  3. チェンジリストを右クリックします。
  4. 変更を元に戻します。
0
ahcox