1

統合を使用して、クライアント固有のプロジェクト用に作成されたいくつかの新しいコード ファイルをメインのコード ベースにコピーしたいと考えています。ただし、メインラインの最初のリビジョンのコードからクライアント固有の機能をいくつか取り除きたいと思います。これまでのところ、最初に未編集のコードを送信し、すぐに編集のためにチェックアウトすることなく、単一のステップでコードの統合と編集の両方を行う方法があるかどうかはわかりません。私は特に P4V の範囲内でこれを行いたいと考えていますが、コマンド ライン アプローチも検討します。あなたの洞察に感謝します。

4

1 に答える 1

2

確かに、単一の変更リストに統合して編集できます。このアプローチには長所と短所があります。あなたが指摘したように、別のリビジョンを提出する必要なく、メイン コードベースに提出されたコードに必要な編集がすぐに含まれていることを評価する人もいれば、明確さを好む人もいます。自分の変更リストで編集を明示的に見ることができます。

とにかく、これの全体的な手順は次のとおりです。

  1. ファイルをメインに統合し、マージを解決します
  2. メインでファイルを編集用に開く
  3. 適切な編集、コンパイル、テストなどを行います。
  4. 変更を送信する

提出前に編集のためにファイルを再度開くことにより、単純な「ブランチ」統合を「追加元」統合に変換し、ファイルは別のファイルからのブランチ編集の両方としてマークされます。

このような別のアプローチを検討するとき、私は小さなテスト サーバーを用意してさまざまなコマンド シーケンスを試し、履歴がどのようになるかを確認したいと考えています。

この特定のケースでは、新しいプロジェクト ファイルをメインに統合し、統合中に編集し、結果を表示する簡単な例を次に示します。少しわかりやすくするために、すべてコマンドラインにあります

C:\Users\Bryan\perforce\client>p4 integrate project/b main/b
//depot/main/b#1 - branch/sync from //depot/project/b#1

C:\Users\Bryan\perforce\client>p4 opened
//depot/main/b#1 - branch default change (text)

C:\Users\Bryan\perforce\client>p4 edit main/b
//depot/main/b#1 - reopened for add

C:\Users\Bryan\perforce\client>p4 opened
//depot/main/b#1 - add default change (text)

C:\Users\Bryan\perforce\client>vim main/b

C:\Users\Bryan\perforce\client>p4 resolved
c:\Users\Bryan\perforce\client\main\b - branch from //depot/project/b#1

C:\Users\Bryan\perforce\client>p4 submit -d merge
Submitting change 4.
Locking 1 files ...
add //depot/main/b#1
Change 4 submitted.

C:\Users\Bryan\perforce\client>p4 filelog //depot/main/b
//depot/main/b
... #1 change 4 add on 2014/12/10 by Bryan@Dell660 (text) 'merge'
... ... branch from //depot/project/b#1

C:\Users\Bryan\perforce\client>p4 diff2 //depot/project/b //depot/main/b
==== //depot/project/b#1 (text) - //depot/main/b#1 (text) ==== content
1c1
< This is b in project
---
> This is b, which came from project but was edited into main.
于 2014-12-10T15:07:24.920 に答える