Perforce Track DeltasはChangesetに固有のものですか、それともファイル全体を保存するだけですか?

StackOverflow https://stackoverflow.com/questions/4272022

  •  28-09-2019
  •  | 
  •  

質問

私は、開発者が作業部門で安定したブランチに行ったいくつかの作業をマージしようとしました。安定した枝とヘッドブランチの共通の祖先が分離されて以来、ファイルA、B、およびCは少なくとも12の変更セットによって変更されていました。

この開発者は、ファイルa、b、cのそれぞれの5行を変更したため、頭から安定したブランチに統合したときに、保留中のチャンセットに彼の変更が得られると予想しました。

代わりに、2つが分岐していたため、ファイルaに起こったすべての変更が必要であり、同僚のワーキングコピーにも存在するすべての変更を適用したようです。

言い換えれば、私の同僚が実際に変えたもの、以前のファイルが含まれていたものについて、Perforceの変更に記録がないようです。

提出された変更セットを閲覧すると、同僚のファイルのバージョンと直前のバージョンの違いがわかります。しかし、それは、マージに何が入るかを決定することはないようです。

変更は、「ファイルのRev XとRevision x+1の間に行われた一連の変更」を意味しませんか?実際に「Changesetを統合する」ことの意味を理解するのを手伝ってくれますか?

私がすべての間違ったことをしていることは完全に可能です。そして、あなたが統合したくないものなしで、作業枝と安定した枝の間で正確かつ安全に合併できることについてのポインターに感謝します。統合される安定した枝。製品で実際に行われた変更がどれほど単純であっても、マージは実際には機能しないようです。

役に立ちましたか?

解決

パフォーマンス します に変更を保存します 文章 Deltasとしてのファイル(変更が提出されるたびにバイナリファイル全体が保存されます)。統合中に修正範囲を適切に制限していないようです。

あなたは、作業部門は「...枝が分離されて以来、少なくとも12のチェンジセットによって変更された」と言います。それらをチェンジリストと呼びましょう1-12。私があなたを正しく理解しているなら、あなたはそれらのすべてではなく、それらのチェンジリストの1つだけで行われた変更を統合しようとしています。

単純な統合操作中に、Perforceは、支店が作成されてから提出されたすべての変更を統合することを想定します。これらの変更のサブセットのみが必要な場合は、改訂範囲を指定する必要があります。したがって、チェンジリスト11と12の間に発生した変更を統合したい場合は、画面キャプチャに示されているように、その改訂範囲を指定します。 (注:改訂範囲は包括的であるため、このスクリーンショットで行うように、11〜12の範囲を指定するには、実際にチェンジリストの変更が含まれます11 12.チェンジリスト12で行われた変更を統合したい場合は、改訂範囲の両方のフィールドに12を入力してください。

枝がどこまで分岐しているかと変化の性質に応じて、発生する避けられない紛争を解決するのが難しいかもしれないことに注意してください。

alt text

他のヒント

統合をどのようにしたかについて、より具体的に説明できますか?私の推測では、おそらくすべての変更を、そのチェンジリストだけでなく、そのチェンジリストまで統合していると思います。もしそうする必要があるのは、統合の上限と下限の両方と同じチェンジリストを指定することだけです。

ビジュアルクライアントでは非常に簡単ですが、使用する必要がある正確なコマンドラインスイッチについてはわかりません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top