5

私はSubversionに不慣れです。先月、私はいくつかの変更を行い、それらをトランクにマージしました。すべてが順調に見えました-私の変更は期待どおりに伝播されました。しかし、今日、私はマージについて読み直していて、これを見て、変更をトランクにマージするときに次のように言っています。

ここで、svn mergeを--reintegrateオプションとともに使用して、ブランチの変更をトランクに複製します。

そして数段落後:

今回は--reintegrateオプションを使用していることに注意してください。このオプションは、ブランチから元の開発ラインに変更を再統合するために重要です。忘れないでください。

初めてはよく読んでいなかったと思います。

したがって、-reintegrateオプションを使用していなかったため、以前のトランクへのマージを間違えたようです。これの結果は何ですか?修正する必要があるものはありますか?

便利な場合、私のワークフローは次のようになりました。

  1. トランクからコピーして、個人用ブランチを作成します。
  2. 個人のブランチをチェックしてください。
  3. 変更とコミット。
  4. トランクの作業コピーを取得します。
  5. 私のブランチをトランクの作業コピーにマージします(ここでも、-reintegrateなしで)。
  6. マージをコミットします。
  7. ブランチを削除します。
4

1 に答える 1

9

ブランチが非常に短命であれば、ワークフローは問題ありません。

寿命が長い場合は、アクティビティのメインブランチから切断されないように、トランクからブランチに変更を定期的にマージすることをお勧めします。

最終的に、機能ブランチには、ブランチを作成してからのトランクからのすべての変更と、ブランチで開発した新しい機能が含まれます。ブランチの変更をトランクに適用するのは誤りであるため、この時点でreintegrateオプションを使用する必要があります。トランクに由来するため、すでにトランクにある変更が再適用されます。

これは、機能ブランチに関するSVNブックのセクションで詳しく説明されています。

于 2012-07-27T17:12:38.497 に答える