1

私たちのperforce管理者は「max-row」スキャンを制限しているため、次を実行するという私の最初のアイデアは機能しません。

  1. 特定のラベル時間 1 でのブランチへの統合を含むすべての変更
  2. 特定の以前のラベル時間 2 でのブランチへの統合を含むすべての変更
  3. 時間 1 から時間 2 の変更を減算して、コメント付きの新しい変更を取得します。

そのような大規模なクエリを使用せずに同じ結果を取得する別の方法はありますか (perforce に 7 年間の履歴が含まれており、-i が歴史の夜明けまでスキャンをトリガーする場合)

グレッグのコメントに基づいて、次のコメントが追加されました。

基本的には、特定のリリース ブランチで 2 つのラベル間 (または、より一般的には、古いラベルと現在) で修正されたバグを確認することがポイントです。リリース ブランチに入った変更を確認する、現在持っている非常に複雑なスクリプトを簡素化 (高速化) したいと思います。元の変更からすべてのチェンジセット コメントを出力するために、少なくとも 2 つのブランチに入っているファイルに従います。 (中間マージ コメントは、実際の変更コメントの説明ではなく、merge123 などのように言う傾向があるため、元のコメントまでツリーをたどる必要があります)、スクリプトは最終的に以下のようなものを出力します (品質センター ID を入力します)。変更セットのコメントに):

  1. qualityCenterId123 - いくつかのバグを修正
  2. gui qcId124 - その他の修正
  3. バグ qcId125 - その他のバグを修正しました
  4. マージ123

コメントに基づく更新:

Toby のアプローチの問題は、コード ブランチへの変更のほとんどが統合によってもたらされたということです。走る。これが、同じ結果を得るための代替アプローチを探している理由です。

4

4 に答える 4

1

ラベルは、作成されたときの最新の変更リスト以上のものですか? たとえば、クライアント ワークスペースで特定のファイルを記録する必要が本当にありましたか? そうでない場合は、ラベルに最も近い 2 つの変更リストを簡単に比較できます。

最初のラベルの日付への最も近い変化が 23000 で、2 番目のラベルの日付への終値の変化が 25000 であるとします。

p4 変更 //depot/PATHTOMYCODE/...@23000,@25000

これら 2 つのチェンジリスト間のコード パスに対するすべての変更が表示されます。

于 2009-01-26T17:27:22.567 に答える
0

通常のLabel-diffはあなたが望むことをしませんか?

  • P4Vから、[ツール]->[差分]。2つのラベルを選択します
  • P4Winから、ラベルを右クリックし、2つのラベルの差分ファイルを選択します
  • コマンドラインから、p4 diff2 // codeline /...@ label1 // codeline /...@ label2

それとも私はあなたが求めているものを正確に見逃していますか?

上記に関するVilleのコメント後のさらなる提案

ファイルごとではなく、チェンジリストごとの情報を求めている場合は、コマンドラインから「p4interchanges」を試してください。これにより、あるブランチで発生していない変更の概要がわかり、必要なラベルに制限するためのリビジョン範囲を指定できます。

詳細については、コマンドラインから「p4helpinterchanges」を実行してください。

残念ながら、interchangesコマンドはP4VまたはP4Winではまだ公開されていません。

于 2009-01-26T13:28:21.423 に答える
0

Toby Allen's Answer は、ラベルが単純な変更リストである場合に最適な方法です。

ラベルがより複雑な場合は、各ラベルのすべてのファイルを調べて、バージョンが異なる場所を確認し、バージョンが変更された変更リストを見つける必要があると思います。

ファイルとバージョンのリストは次の方法で取得できます。

p4 fstat -Of //...@MyLabel

編集:

2 つの複雑なラベルを考えてみましょう。

VERSION_A:
 //depot/file_A.cpp#4
 //depot/file_B.cpp#7
 //depot/file_C.cpp#1

VERSION_B:
 //depot/file_A.cpp#6
 //depot/file_B.cpp#5
 //depot/file_C.cpp#4

この例では、ラベルは特定の変更リストを説明していません。各ファイルのヘッド変更は異なる場合があります。

このようなラベルを作成できる場合は、各ラベルで p4 fstat コマンドを実行して、違いを見つけることができます。この例でfile_A.cppは、 が 2 回変更され、 file_C.cpp3 回変更されています。 file_B.cppは 2 番目のラベルの方が古いため、無視できます。

したがって、これらのバージョンに関連する変更を確認する必要があります。

file_A.cpp#5
file_A.cpp#6
file_C.cpp#2
file_C.cpp#3
file_C.cpp#4

これらの変更は p4 filelog で取得できるため、次のように実行します。

p4 filelog file_A.cpp#6
p4 filelog file_C.cpp#4

次に、以前のバージョンの重複と履歴を削除する必要があります。

私が言ったように、ラベルが乱雑な場合にのみこれが必要です。変更リストを表すラベルを作成する方法がある場合は、Toby Allen の回答を使用する必要があります。

于 2009-01-30T20:30:02.797 に答える