0

大きな背景を持つ小さな質問がありました。短いバージョンを聞いて、少し拡張してみましょう。

私の質問の短いバージョンは次のとおりです。

状況を想像してみてください。チェンジリスト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で「減法混色」を行う方法を知っていますか?

前もって感謝します。

4

3 に答える 3

2

1001を(以前の統合履歴を無視するために-iフラグを使用して)ブランチBに再統合し、1001からのすべての変更をブランチBに1007チェンジリストを作成します。次に、その上に1005と1006を再統合します。1005と1006が1002-1004の変更の一部に触れない限り、より選択的にする必要があるかもしれません。

于 2011-11-01T19:41:47.730 に答える
1

目の前にあった主要なPERFORCE機能を見逃したようです...「送信された変更リストをバックアウト#####」は正しいことを行います。PerforceP4Vの「Rollback...」と「BackOutSubmitedChangelist#####」の違いを参照してください。

于 2011-11-08T04:58:30.480 に答える
0

これを行う場合は、チェンジリスト1001のブランチAに基づいてブランチCを作成します。次に、もちろん、Aからチェンジリスト1002をプルせずに、ブランチAとBからCに必要な追加作業をプルします。

于 2011-11-01T14:17:06.323 に答える