14

コードベースの perforce でブランチを作成したとします。ブランチの仕様は次のとおりです。

//depot/code/main/... //depot/code/branch/...

次に、ブランチで、ブランチされたファイル a.txt -> b.txt を使用して移動するとします。

p4 integrate //depot/code/branch/a.txt //depot/code/branch/b.txt
p4 delete //depot/code/branch/a.txt

ここで、メインの a.txt に変更が加えられ、ブランチの b.txt に統合したいとします。

元のブランチ仕様を使用して統合しようとすると、メインの a.txt に加えられた変更が b.txt に反映されません。名前が変更されたファイルにメインで加えられた変更を表示する方法はありますか?

ブランチの仕様はかなり大きく (数百の変更)、かなりの数のファイルの名前がブランチで変更されているため、これを自動化する方法が必要です。ここで明確にできることがあれば教えてください -- ホワイトボードがあると助かります ;)

ありがとう!サム

4

6 に答える 6

12

「-3」スイッチを追加して、以前に「p4 move」で移動されたターゲット ファイルを検出し、それらの移動操作に従うように自動的に「再ターゲット」する統合用の新しいエンジンを使用できます。

p4 integrate -3 //depot/code/main/... //depot/code/branch/...

//depot/code/main/a.txt の変更を //depot/code/branch/b.txt に統合します。

これは現在の 2010.2 リリースの「undoc」機能ですが、今後の 2011.1 ではデフォルトの動作になります。

于 2011-10-31T09:49:43.817 に答える
3

Perforce 2009.1 には適切な名前変更機能があり、これが役立つ可能性があります。おそらく、将来の名前変更の場合のみです。Perforce 2009.1 リリース ノートを参照してください。具体的には次のとおりです。

#177023 * **
    The new 'p4 move' command allows for better support for
    renaming files.  A file must be already opened for 'edit'
    or 'add' in order to be moved.  Moved files can be synced,
    resolved and diffed against the repository just like files
    opened for 'edit'.  See 'p4 help move' for more info.

名前の変更をブランチ仕様に追加できます。そうすれば、ブランチの仕様がさらに長く複雑になるとしても、少なくとも統合は自動化されます。

于 2009-12-11T22:50:20.147 に答える
3

Perforce にこれを処理させる唯一の方法は、ブランチ仕様を使用して、元の古いファイルをブランチの新しいファイルにマップすることです。おそらく、最近の Perforce バージョンの新しい move コマンドで変更されましたが、私が経験したことはありません。

于 2009-12-12T16:29:57.313 に答える
2

p4 fstat の出力を使用して、移動されたファイルを処理するためのブランチ仕様の作成をスクリプト化できます。

以下を出発点として使用します。

ROOT_PATH="//depot/books/..."
FIRST_CHANGE=91212

p4 fstat -Os -T headChange -F "headAction=move/* headChange>$FIRST_CHANGE" $ROOT_PATH|grep headChange | sort -u|while read DUMMY1 DUMMY2 change; do p4 describe $change; done|grep "moved from"|sed 's/\.\.\./\t/g; s/\#[0-9]*//g; s/ moved from//g;'

これにより、変更 91212 以降で移動された //depot/books/... 内のすべてのファイルが検索されます。

私たちにとって、これの出力は次のようになります

//depot/books/bar.txt //depot/books/foo.txt

ブランチ仕様の作成に使用します。

于 2011-04-26T14:00:05.467 に答える
1

私はそうは思いません。直接はないためp4 rename、統合して削除する必要があります。一度統合すると、別のブランチからの統合は正しいファイルに移動しなくなります。少なくともそれは私の経験です。

于 2009-12-11T20:43:34.277 に答える