4

標準的な慣行に従って、機能開発用の svn トランクと、リリースを構築するための分岐ブランチがあります。ブランチは、リリースの作成にも使用される maven リリース プラグインを使用して作成されています。時折発生するバグはブランチで修正され、それらの変更をトランクにマージする必要があります。変更を見逃さないように、ブランチ全体をトランクに簡単にマージできるようにしたいと考えています。

今私の問題は、プロジェクト/依存関係のバージョンがブランチとトランクで分岐しているため、すべての pom で多数の競合が発生することです。これは、リリース プラグインがバージョン番号をインクリメントするためです。これらのマージの競合を回避するために、ブランチの作成、poms、またはリリースを再構築する方法を知っている人はいますか?

4

3 に答える 3

4

これは、MavenPOMとSubversionブランチをこのように一緒に使用することに固有のものです。いくつかのオプションがあります。

  1. スナップショットをぶつけたコミットを回避するために、SVNのリビジョンからマージを実行します。時には単純ですが、マージするための理想的な方法ではなく、それでも競合が発生する可能性があります
  2. 競合を確認し、POMの変更のみが変更された場合は、オプションとしてmine-conflict( )を使用します。mcこれに自信がある場合は、SVNを使用できます--accept mine-conflict
  3. それらが誤ってマージされることを許可し、バージョンのプラグインを使用して後でバージョンをリセットします。versions:set
于 2010-08-24T11:39:08.417 に答える
0

Brett Porter の回答に基づいて、次のことを行うと思います。

ブランチの再編成: 競合の原因は、リリース プラグインがSubversion ブランチを作成した後にトランクとブランチのバージョンを変更したようです。これを回避するには、

  1. でトランクのバージョンを上げversions:setます。
  2. release:branchブランチの作成に使用しますが-DupdateWorkingCopyVersions=false、バージョンを既に設定しているため設定します。

これにより、マージの競合が回避されます。残っているのは、ブランチをトランクにマージするたびに、ブランチ バージョンもマージするということです。再び、versions:set救助に。

于 2010-08-25T07:48:01.977 に答える