1

私は現在、2つのフェーズがあるプロジェクトに取り組んでおり、そのうちの1つは後で削除される予定です。フェーズ2の開発を開始する必要がありますが、フェーズ1のバグ修正はこの期間中継続されます。フェーズ1リポジトリから分岐して、フェーズ2の作業を開始したいのですが、ファイルの多くは不要になります。フェーズ2ブランチに加えられた変更を統合する必要がありますが、自分に関係のないファイルを繰り返し削除する手間をかけたくありません。つまり、共通のファイルがある場合にのみ変更をマージしたいと思います。

例を挙げて説明しましょう。このリポジトリでフェーズ1を実行するとします。

フェーズ1-a.txt-b.txt

次に、フェーズ2に分岐し、a.txtを削除します。これ以上必要ないため、次のようにします。

フェーズ2-b.txt

ここで、フェーズ1のバグ修正の一環として、a.txtとb.txtの両方が更新されたとします。私はb.txtだけを気にしますが、マージを行うと次のようになります:+ N a.txt.OTHER M b.txt

バザーでこれを行う方法はありますか?

4

1 に答える 1

3

はい、 Daggy Fixes パターン( mirror )の使用を開始する場合は、Bazaar で達成できます。

そのため、フェーズ 2 ブランチにあるファイルを覚えておき、フェーズ 1 とフェーズ 2 に共通の別のブランチでそれらの修正を行い、これらの修正を両方のフェーズにマージする必要があります。

あなたの例を使用して:

1) ファイル a.txt の問題を修正する必要があります。フェーズ 1 (b1) の元のブランチで直接作業できます。このブランチからブランチ フェーズ 2 (b2) にマージしないでください。

2) ファイル b.txt のみで問題を修正する必要があります -- b.txt へのバグが導入されたリビジョンにできるだけ近い特別なバグ修正ブランチを作成しました。ブランチ フェーズのリビジョンより前のリビジョンからバグ修正ブランチを作成する必要があります。 2」が始まりました。修正を行ったら、バグ修正ブランチを b1 ブランチと b2 ブランチの両方にマージする必要があります。

3) a.txt と b.txt の両方に関連する問題を修正する必要があります。この場合、b2 にマージするためにそのようなバグ修正が必要ない可能性があります。この場合、上記のバリアント 1 を使用して作業できます。b2 にとってまだ重要な変更がある場合は、b.txt の修正を開始するために上記のバリアント 2 を使用する必要があります。次に、修正を b1 と b2 の両方のブランチにマージし、a.txt の修正に取り組み続けます。

于 2009-07-04T12:07:13.530 に答える