0

SVN では、次の点を考慮してください。

  • 枝 A 幹から枝分かれする
  • ブランチ B は後でブランチ A から分岐します (一時的な開発ブランチと見なされます)。
  • どちらのブランチもトランクではないことに注意してください。
  • ブランチには多くのディレクトリとサブディレクトリ (ファイルを含む) が含まれます
  • ブランチ A とブランチ B の両方で開発が行われました。
  • ブランチ B での開発中に、ブランチ B のみでいくつかの新しいファイルが導入されました
  • ブランチ A では、この時期にいくつかのファイルが改訂されました。これらの変更はブランチ B には適用されませんでした。
  • B の変更 (複数のリビジョン) と B の開発中に導入された新しいファイルをブランチ A にマージすることが望まれます (B の開発中に A に加えられた変更を失うことはありません)。

ブランチ B をブランチ A にマージするには、どの SVN 手順を使用する必要がありますか?

編集:

したがって、手順全体は次のようになります。

  1. 最新のブランチをチェックアウトする作業ディレクトリを作成するa files/directories(Tortoise チェックアウト)
  2. (Tortoiseを使用してこのディレクトリで)Merge / "Reintegrateを実行a branchし、メニューでブランチbを指定します
  3. Tortoise はこのファイル/ディレクトリへのマージを行います (それは私の作業ディレクトリにありますか? (まだ SVN サーバーにはありませんか?)
  4. マージの競合が報告される可能性があります...開発者が処理する必要があります...
  5. マージが成功したように見えた後、SVN コミットを実行すると、branch a

これらの手順は正確ですか、またはマージ操作によって変更されたファイルが SVN サーバーに自動的に送信されますか? その場合、マージの競合が発生した場合はどうなりますか?

4

2 に答える 2

4

ブランチ A からブランチ B に頻繁にマージします。

svn マージ url://brancha url://branchb

ブランチ B で開発が完了すると、ブランチ B をブランチ A に 1 回 (1 回だけ) 再統合します。ブランチ B を再統合した後、ブランチ B での作業を停止する必要があります。

svn merge --reintegrate url://branchb

http://blogs.collab.net/subversion/2008/07/subversion-merg/

于 2012-06-06T21:22:04.517 に答える
1

あなたの最後のコメントによると、あなたが言及したステップは完全に正しいです。

そして、次の質問に関しては、svnは変更をマージするのに役立つだけであり、svnサーバーで変更をコミットすることはありません。

マージ後は常に手動で変更をコミットしています。:-)

お役に立てれば。

于 2012-06-13T12:19:57.297 に答える