web-dev-qa-db-ja.com

PerforceRevertは「このクライアントで開かれていないファイル」を表示します

既存のPERFORCEアプリケーションを開こうとしています。元に戻したいファイルの削除など、いくつかのローカル変更を行いました(つまり、ローカルコピーをリポジトリと完全に一致させたい-追加ファイルの削除、削除ファイルの復元、変更の元に戻す)。

P4v guiクライアントを使用して元に戻そうとすると、次のエラーが表示されます。

 file(s) not opened on this client

私は何が間違っているのですか?

変更されたすべてのファイルを元に戻すことができましたが、追加/削除されたファイルは元に戻せませんでした。

編集:私は次のことをしました:

  • P4vを使用してPERFORCEサーバーに接続します
  • ディレクトリをローカルファイルシステムにマップします(たとえば、C:\Perforce
  • リポジトリの最新バージョンを入手する
  • WindowsエクスプローラーでC:\ Perforceに移動します
  • いくつかのファイルとフォルダを削除します
  • いくつかのファイルとフォルダを追加します

「元の」状態に戻したいと思います。これは、リポジトリの最新バージョンを初めて取得したときにサーバー上にあったもののコピーです。

19
ashes999

編集した説明の外観により、PERFORCEを介さずに、ファイルシステム上で直接ファイルを追加および削除しました。したがって、PERFORCEはこれらの変更について何も知らないため、元に戻すものはありません。通常、ファイルを追加する場合は「p4 add」(または同等のp4v操作)を使用し、削除する場合は「p4delete」(または同等のp4v操作)を使用する必要があります。

実際、元の状態に戻すための最良のオプションは、c:\ perforce(Windowsエクスプローラー内)でコードのローカルコピーを削除し、p4vに移動して、同期する領域を右クリックし、[リビジョンを取得]を選択することです。 ...」と続くダイアログで、「強制操作」チェックボックスがチェックされていることを確認してください。これにより、同期したかどうかに関係なく、すべての新しいコピーが必要であることがPerforceに通知されます。

P4vで「オフライン作業の調整」を実行することもできます。デポエリアを右クリックして、そのオプションを選択します。ローカルフォルダ構造をスキャンして、PERFORCEに存在しない追加されたファイル、削除されたファイル、および変更されたファイルのレポートを提供します。そのダイアログから、PERFORCEに存在しないローカルファイルを右クリックして削除するか、「p4追加」することができます。削除したファイルを同期することもできます。

HTH。

24
Mark

これの別の原因を指摘しないためにちょうど余分。ファイル名に正しく翻訳できない異常な文字が含まれている場合、クライアントの名前がサーバーの名前と一致することはありません。この場合の解決策は、ファイル名でその文字を見つけ(Linuxでは疑問符のエンブレムになります)、ワイルドカードを使用してサーバーに対してファイルを識別し、削除できるようにすることです(p4ファイルの削除は行く方法)。

3
user5585327

この答えはあなたの場合ではないかもしれません。これは、p4にログインせずにローカルディスク上のファイルを編集したときに発生しました。

コマンドラインでの簡単な修正は次のとおりです。

p4 login               # make sure you've logged in
p4 edit <filename>     # let p4 know you've edited the file
p4 revert <filename>   # revert to "pristine" state
0
Yixing Liu