編集用に開かれていないが、ローカルで変更されているファイルを検出する方法を見つけようとしています。任意のファイルp4 fstat
の値を返しますが、これはデポ内の変更時間であり、ファイルシステムの最後に変更された時間と同じであってはなりません。headModTime
stat
元のファイルをバックアップし、ファイルの同期を強制してからdiffを実行するよりも、より軽量な操作が存在することを期待しています。アイデア?
編集用に開かれていないが、ローカルで変更されているファイルを検出する方法を見つけようとしています。任意のファイルp4 fstat
の値を返しますが、これはデポ内の変更時間であり、ファイルシステムの最後に変更された時間と同じであってはなりません。headModTime
stat
元のファイルをバックアップし、ファイルの同期を強制してからdiffを実行するよりも、より軽量な操作が存在することを期待しています。アイデア?
出典: http://answers.perforce.com/articles/KB/3481/?q=disconnected&l=en_US&fs=Search&pn=1
具体的には、ステップ 2 を参照してください。
2. 次に、変更されたファイルを「編集」するために開きます。
p4 diff -se //myclient/... | p4 -x - edit
p4 diff -se は、対応するクライアント ファイルがクライアント #have リビジョンと何らかの形で異なるディポ ファイルの名前を返します。
This SO questionは、P4V GUIでこれを行う方法を提供します:
P4V の 2009 年 1 月バージョンでは、ワークスペース ツリー内の任意のフォルダーを右クリックし、[オフライン作業の調整...] をクリックできます。
これにより、少し処理が行われ、チェックアウトされていないがデポ バージョンとは異なるファイル、またはまったくチェックインされていないファイルの分割ツリー ビューが表示されます。それがもたらす他のいくつかのカテゴリさえあるかもしれません.
このビューでファイルを右クリックして、チェックアウト、追加、元に戻すこともできます。
後で編集:
[調整...] ウィンドウで [高度な調整] をクリックすると、追加する必要のあるファイルを見つけるのに特に役立つ 2 ペインのフォルダー階層差分ウィンドウが表示されます。
長所: この P4V 機能全体は、コマンドライン バージョンよりもユーザー フレンドリーです (調整する対象を最大限に細かく選択できるため)。
短所: subversion/git/hg の.ignore
ようなリストが切実に必要です。これは、プロジェクト内のすべての dll やその他のクラフトを手動でスキップする手間を省くためです。
Perforce バージョン 2012.1 以降では、コマンド ライン コマンドp4 status
とp4 reconcile
http://www.perforce.com/perforce/r12.2/manuals/cmdref/status.html
この
p4 status
コマンドは、クライアントのワークスペースで開かれていないファイルを見つけ、ワークスペースとデポの間の次の 3 つのタイプの不整合を検出します。
- ディポに存在し、持っているリストに存在するが、ワークスペースにないファイル。デフォルトでは、これらのファイルは削除のために開かれます。
- ワークスペースには存在するが、デポにないファイル。デフォルトでは、これらのファイルは追加用に開かれています。
- 編集用に開かれていないワークスペースで変更されたファイル。デフォルトでは、これらのファイルは編集用に開かれています。
http://www.perforce.com/perforce/r12.1/manuals/cmdref/reconcile.html
切断された作業の記事から、p4win を使用して、問題のフォルダー/ファイルを選択し、「ファイル メニュー -> 詳細 -> 一貫性のチェック」を選択して、基本的に「p4 diff -se」および「p4 diff -sd」を実行することもできます。不整合を解決するようにユーザーに促します。
これが私にとって非常にうまく機能したUNIXソリューションです。