3

私はこれを数週間オンとオフで調査してきたので、これがすでに回答されている場合はお詫び申し上げます.

私の主な問題は、継続的なマージを実行した後のマージです。

私は自分/trunkの を持っています。そこから自分のブランチを作成します/branches/featureone。その後、開発者はそのブランチ内で開発を続けます。

この開発中、チームの残りのメンバーは、.NET 内でマイナーなバグ修正を行います/trunk。ブランチは、トランクからの変更で毎日更新されます。プロジェクトが終わりに近づいたので、トランクにマージする時が来ました。ここで問題が発生します。

この特定の例では、多くの古いダフ ファイルが から削除されました/trunk。これは と正常にマージされました/branches/featureone。したがって、トランクとブランチの両方でこれらのファイルが削除されています。

次の設定で TortoiseSVN を使用してマージ/branches/featureoneします。/trunk

Imgur リンク

Test Merge で実行すると、突然、削除によって競合が発生します。着信削除で削除します。これは、追加された新しいファイル、着信追加によるファイル追加でも発生します。

私の質問は、どうすればこれを回避できますか? SVN はこれを自動的に把握するためのものではありませんか? 続けて、トランクからのマージではないすべてのリビジョンを手動で選択できますが、これは間違っているようです。

TortoiseSVN 1.8.4 と Subversion Edge 4.0.4 (Subversion 1.8.5) で実行しています。

私たちの SVN 構造は一般的に次のとおりです。

\---svn
     +---branches
     |   +---featureone
     |   \---featuretwo
     +---production
     \---trunk

バージョンはありません。すべてのお客様が同じコードベースを使用しています (ただし、これは将来変更される可能性があります)。

どんな助けでも大歓迎です。

4

1 に答える 1

1

あなたのシナリオは、再統合オプションを使用してマージする必要があるように見えます。スクリーンショットに基づいて、ツリー全体ではなく、一連のリビジョンをマージしようとしています。TortoiseSVN のドキュメントには次のように書かれています。

機能に時間がかかり、トランクの変更を考慮する必要がある場合は、ブランチの同期を維持する必要があります。これは単純に、定期的にトランクの変更をブランチにマージして、ブランチにすべてのトランクの変更と新しい機能が含まれるようにすることを意味します。同期プロセスでは、一連のリビジョンをマージします。機能が完成したら、ブランチを再統合するか、2 つの異なるツリーをマージするかのいずれかを使用して、トランクにマージすることができます。 https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html

于 2016-03-11T20:17:45.177 に答える