1

'p4copy'コマンドでコピーされるすべてのチェンジリストで'p4describe'を実行できるようにしたいと思います。これはどのように行うことができますか?

私は次のようなことをすることができます:

p4 copy -n from-branch/... to-branch/... | sed -e 's|.* ||' | xargs -n 1 p4 filelog

ファイルごとの変更のリストを見つけて、最後のブランチのポイントでリストを切り捨てるか、アクションをto-branchに統合します(存在する場合)。ただし、これには長い時間がかかる可能性があります。もっと良い方法はありますか?

4

3 に答える 3

1

試してみてくださいp4 interchanges。チェンジリストの説明全体を出力し、変更されたファイルを一覧表示するフラグ-lとフラグが好きです。-f

p4 interchanges -lf from-branch/... to-branch/...

ただし、実際にはこのコマンドをp4 copyで使用したことがないため、結果が少し異なる場合があります。特に派手な統合(チェリーピッキングリビジョン)を行っている場合、PERFORCEは、すでに統合されている場合でも、変更リストを統合する必要があると表示する場合があります。

于 2012-05-09T14:13:46.577 に答える
0

最も簡単な方法は、from-branchからto-branchにコピーされた最後のCLで、from-branch/...というラベルとタグを作成することだと思います。次に、コピーされていないCLのリストを見つけるのは次のように簡単です。

p4 changes 'from-branch/...@>copied-up-to' # where copied-up-to is the name of the dynamic label

from-branchの下のすべてが同じCLでタグ付けされている場合、リビジョン仕様がfrom-branchからto-branchにコピーされた最後のCLとなる動的ラベルを使用できます。

于 2012-05-09T00:53:05.370 に答える
0

スクリプトはおそらく正しい方法です。perl、python、またはruby APIを使用して、より効率的で保守しやすくします。

基本的な概要は次のとおりです。

  • 実行p4 copy -nして候補ファイルのリストを取得します
  • コピーされているソースリビジョンを解析します。たとえば、出力の各行には、「//depot/foo.c#1,#3からのbranch/sync」のようなものがあります。そのファイルについては、リビジョン1〜3がどのように作成されたかを知りたいと思います。
  • 実行p4 changesして、各ファイルに影響を与えたチェンジリストを取得します(例:p4 changes -l //depot/foo.c#1,#3

繰り返しになりますが、APIを使用してこれを行うと、すべてのコマンド呼び出しに単一の接続を使用できるため、はるかに効率的になります。

于 2012-05-09T14:53:58.237 に答える