3

変更を送信する準備ができているチェックアウト済みのファイルがいくつかあります。

クライアント仕様が代替ルートをハードコーディングしていることに気付いたので、クライアント仕様のすべての行から代替ルートを削除し、代わりに代替ルート ボックスで指定しました。

また、変更リストに追加する準備ができていないチェックアウトされていないファイルがいくつかあったため、その下のディレクトリ構造の名前を変更し、必要なすべてのブランチを同期してから、ディレクトリの名前を AltBranch に変更し、古いものの名前を元に戻しました。

ただし、チェックアウトされたすべてのファイルは「ワークスペース ビューにマップされていません」と表示されますが、まだ存在します。

perforce を自分のバージョンに強制的に一致させたかったので、試してみp4 sync -kましたが、エラーが発生しました

//.../X.cpp#10 - is opened for edit and can't be deleted

次に試しp4 sync -k -fましたが、エラーが発生しました

//.../X.cpp#10 - refreshing C:\Work\...\X.cpp
//.../X.cpp#10 - is opened for edit and can't be deleted

全体として、私はPerforceが本当に好きですが、常に最善を尽くしているという主張にはイライラします

4

4 に答える 4

1

目的を達成するための一連の Perforce コマンドを含むバッチ ファイルを作成することができました。

この解決策は Windows/DOS 固有のものです。ただし、他のコマンド シェルでもこの​​修正に必要な解析を実行できると思います。

 @ echo off
 echo Please Exit Perforce
 pause
 setlocal
 rem Retrieve depot spec format of file
 for /f "delims=# " %%d in ('p4 files %1') do set p4name=%%d
 rem Retrieve current pending changelist
 for /f "tokens=5 delims= " %%d in ('p4 opened %p4name%') do set change=%%d
 p4 revert -k %p4name%
 p4 sync -k %p4name%
 p4 edit -c %change% %1

このバージョンはファイルに固有ですが、代わりfilesにディレクトリ バージョンを使用することもできます。dirs

また、ダニのコマンドが失敗した場合、コマンドプロンプトはERRORLEVELを設定しません。

于 2011-04-12T14:32:18.243 に答える
1

ファイルをチェックアウトしていない場合は、クライアント マッピングを再配置する方がはるかに簡単です。スペックデポはありますか?その場合は、スペック デポからクライアント定義を復元することで、以前のバージョンのクライアント定義に簡単に戻すことができます。次に、ファイルを送信または棚上げして、ワークスペースで開かれているファイルがなくなるようにします。次に、クライアント マッピングを再配置し、さまざまなレイアウトを試すことができます。Perforce は、開いているファイルで問題が発生することなく、ディスク上のファイルを喜んで再配置します。

于 2011-04-06T13:41:06.627 に答える
0

私はあなたができると思います、p4 reopen <changelist>そしてそれは正常に戻るはずです。

于 2011-04-06T19:24:28.460 に答える