4

私はPerforceにかなり慣れていませんが、GitやMercurialなどのDVCSの経験があり、Perforceの基本原則に精通しています。

今日は少し遊んで、関数p4vを使っていくつかのプレイコードのブランチを作りました。Integrate...後でソースブランチを変更し、それらの変更を新しいブランチにも統合したいと思いました。ただし、すべての単一のチェンジリストが1つの大きなチェンジリストに統合されました。それは私にはベストプラクティスではないようです。機能またはバグ修正を開発する場合、各送信はアトミックである必要があるため、当然、複数の送信があります。

マージまたは解決するときにチェンジリスト全体を保持するにはどうすればよいですか?

4

2 に答える 2

8

「ベストプラクティス」は、ワークフローとブランチの設定方法によって異なります。確かに、単一のチェンジリストにすべての統合されたチェンジリストを含めるのは適切な時期です。これは、「機能」ブランチを作成するときにスタジオでかなり行い、ブランチには最新のメインラインコードが必要です。一方、チェンジリストごとの統合は、製品サイクルの最後に、特定の修正または機能をリリースブランチにブランチする必要がある場合に非常に役立ちます。

チェンジリストによる統合は簡単です。

  1. 「送信済みチェンジリスト」ペイン(ctrl-2)で送信するチェンジリストを見つけます。
  2. チェンジリストを右クリックし、「送信されたチェンジリストNNNを使用して統合する」を選択します
  3. 次のダイアログで必要なオプションを設定します。

そこから、統合をプレビューおよび/または実行できます。ヒントとして、私は常に最初に統合をプレビューします。これにより、実際の統合を行う前に対処したい潜在的なエラーまたは警告状態がわかります。

一度にチェンジリストを統合するこの方法は、「チェリーピッキング」と呼ばれます。PERFORCEには、チェリーピッキングのチェンジリストに関する優れたナレッジベースの記事があります

于 2011-05-12T13:33:37.843 に答える
1

あなたがどのように成長するかに応じて、それは良いことでも悪いことでもあります。変更をチェリーピックしたい場合もあれば、すべてが必要な場合もあります。

マージするチェンジリストを1つだけにする場合は、統合画面で、「統合の範囲を制限する」という矢印を展開します。次に、統合するファイルを選択できます。チェンジリストが1つだけ必要な場合は、「間でリビジョンのみを統合する」を選択し、両方のチェンジリストのみを選択します。ご覧のとおり、リビジョン、日付、ラベル、およびワークスペースによっても実行できます。そのように非常に柔軟です。

于 2011-05-12T13:06:56.627 に答える