Mavenのバージョン管理並列開発プロセスMavenの並列開発プロセスのバージョン管理
私は通常のトランクとブランチでSVNを使用してプロジェクトを作成しています。 私は2つの異なるポリシー "リリース"と "スナップショット"を持つ2つのリポジトリを持つネクサスを持っています。 このプロジェクトは、私の会社の他のプロジェクトから使用される成果物を生成します。 新機能が必要な場合、私はアーティファクト-1.0.1.jarを持っている私たちがリリースリポジトリにそうネクサスにバージョン1.0.1にあるのは、現時点で言ってみましょう
私は、次の手順を実行します。
- をトランクから新しいブランチを作成しますのは、トランクからfeature_1を言わせので、私は今の支店/ feature_1
- は1.0.2-SNAPSHOTにバージョンを上げてきたし、ネクサス上で、私は1.0.2-SNAPSHOT.jarに
1.0.2-SNAPSHOTがリリースされる前に、別の機能が必要とされ、私は前の手順繰り返します:
- をトランクから新しいブランチを作成しますのは、トランクからfeature_1を言わせので、私は今の支店/ feature_2
- を持っています1.0.3-SNAPSHOTにバージョンを増やし、ネクサスに私が持っているでしょう1.0.2-SNAPSHOT.jarにと1.0.3-SNAPSHOT.jarにいくつかの段階で
私はfeature_2ライブ行く必要があります次の手順を実行します:
- トランク内でfeature2をマージする
- prodにデプロイし、artifacts 1.0.3.jarをNexusにプッシュします。
私はまだ進行中のfeature_1を持っており、リリースバージョンは1.0.3である一方で、バージョン1.0.2-SNAPSHOT.jarにしていなかった場合、プロセスが正常に動作します。
残念ながら、機能ブランチは順番にリリースされません。 この場合、バージョン管理はどのように管理できますか?私は何が欠けていますか?
1.0.2-SNAPSHOT(feature_1)のチームがトランクをブランチ/ feature_1にマージし、バージョンを1.0.2-SNAPSHOTから1.0.4-SNAPSHOTに増やすよう強制する必要がありますか?
それは私には正しいとは言えません。
私はいつか5/6以上の機能ブランチを同時に持っていると考えています。この製品は、おそらく問題や遅延を伴う可能性のある他のシステムに依存しているため、実際には何の計画もありません。私はおそらく、バージョンのない機能ブランチを持つべきですが、機能の名前は "SomeFunctionality1-SANAPHOT"、 "SomeName2-SANAPHOT"とし、トランクにマージするときだけ2016.x.rnのようなバージョン番号を与えますビルド番号であり、rnはSVNからのリビジョン番号です。どう思いますか? – carlitos081
あなたはそのように働くことはできず、肯定的な結果に達することを願っています。あなたは機能ごとに1つのチームがあると仮定すると、あなたはあなたが得ているように聞こえるよりもはるかに多くの管理を必要とする仕事のプログラムを持っています。あなたは、プログラム開発のための時間割を計画し、プログラムレベルでリリースすることができるはずです。あなたが記述しているようにバージョンが何であるかを知るまでバージョン管理を延期すると言っていますが、現時点で最良の選択肢と思われます。 –
はい、私たちはその面で取り組んでいます。私たちのプロセスは正しくなく、バージョン管理はうまくいくものです。 – carlitos081