大きな背景を持つ小さな質問がありました。短いバージョンを聞いて、少し拡張してみましょう。
私の質問の短いバージョンは次のとおりです。
状況を想像してみてください。チェンジリスト1000から1004のブランチAがあります。次に、チェンジリスト1004からブランチBを作成し、さらにいくつかのリビジョン(1005、1006)を追加します。その後、チェンジリスト1002によって導入されたデルタをブランチBから削除する必要があります。どうすればよいですか?ブランチAでそれが必要な場合は、問題ありません。1001にロールバックして、1003-1004を再統合してください。しかし、履歴にこのチェンジリストがないブランチのチェンジリストによって導入されたデルタを削除する必要があります。では、どうすればこの「選択的削除」を実行できますか?
私の質問の歌詞の背景は次のとおりです。私がClearCaseエンジニアだった昔は、「サブトラクティブマージ」と呼ばれる機能を使用することがありました。私は「マージ」コマンドを呼び出し、デルタと「削除」のようなものを示すフラグを識別するために2つのバージョンを指定しました(これは数年前で、正確なフラグを忘れていました)。それがしたことは、そのデルタが実際にいつ導入されたかに関係なく、指摘されたデルタを削除したことです-1コミット離れたまたは1年前。したがって、これは、バージョンを削除せずにロールバックとして使用される可能性のあるサブトラクティブマージであり、デルタを「切り取る」ようなものです。
今、Perforceを使用しており、「now」から指定したチェンジリストにデルタを削除するチェンジリストを作成できる「Rollback」コマンドを確認できます。そして、それはあなたがいくつかのデルタを取り除く必要があるときにPerforceナレッジベースが行うようにアドバイスする方法です。また、ある範囲のチェンジリストを削除する必要がある場合は、チェンジリストのスタック全体を「現在」から前のチェンジリストにロールバックしてから、破棄したいチェンジリストを除くすべてを統合する必要があります。つまり、N個のチェンジリストを削除してから、N-1個のチェンジリストを統合し直します。わかりません...それは私にとってオーバーヘッドのように見えます。
だから私は経験者にPERFORCEユーザーに尋ねます、あなたはPERFORCEで「減法混色」を行う方法を知っていますか?
前もって感謝します。