複数のメジャーバージョンが維持されているプロジェクトでgit-flowを効果的に使用するにはどうすればよいですか?


18

私はいくつかのプロジェクトをgit flowワークフローに移行しましたが、それが大好きです。ただし、一度に複数のメジャーバージョンが維持されているプロジェクトで作業する場合、物事をスムーズに進めるベストプラクティスは見つかりませんでした。

具体的には、「無料版」や「有料版」などのパラレルモデルを維持していません。バージョン1がリリースされ、マイナーバージョン(1.1、1.2などでサポートされているプロジェクト)について話しているのです。 。)バージョン3がリリースされるまで、その時点で2と3が維持され、4がリリースされるまで...

gitflowワークフローでプロジェクトの2つ以上のサポートされているバージョンを一度にどのように維持しますか?


サンプルATMはありませんが、私が知っているプロジェクトは、異なるメジャーバージョン用に別々のリポジトリを使用し、パッチを一方から他方にバックポートしました。
-ProdigySim

@ProdigySim:データポイントに感謝しますが、それは私だけですか、それとも追跡と管理のためにある程度のオーバーヘッドが追加されますか?
HedgeMage

@ProdigySimこれらのプロジェクトでは、gitの分岐機能とマージ機能を備えたツールを使用していなかったと思われます。
ラインヘンリヒズ

@Rein Mercurialを使用します。ソフトウェアの並列メジャーバージョンを追跡するという点では、分岐は非常にきれいだとは思わない。
ProdigySim

それから私の疑いは正しかった。そして、はい、あなたのツールがそれを適切にサポートしていれば、とてもきれいです。gitとLinuxカーネルはどちらもこの方法で行います。
ライン

回答:


10

man gitworkflows、「git flow」ワークフローの祖父は、一般的なgitワークフローガイドラインを説明しています。使用punextmasterおよびmaint支店。そして、どのようmaintに管理されます。複数のメンテナンスブランチがある場合は、たとえば、maint/1.xなどの名前を付けることができますmaint/2.x

重要なのは、gitコマンドの使用方法ではなく、合理的なプロセスの構築方法です。あなたにとって重要なものを決定し(バックポートのしやすさ?)、これらの制約を満たすワークフローを構築(および文書化)します。


しかし、これは質問に答えますか?つまり、git-flowは質問で説明されている柔軟なリリースモデルをサポートしていますか、それとも基本的なgitコマンドに戻りますか?(「gitworkflows」では、基本的なgitワークフローの使用法、pre-git-flowについて説明します。)git merge / branchプロセスを簡素化するために(表面上)Git-flowが作成されました。時間のかかる「合併」ミスを回避します。git-flowを使用して、v2.5。{1,2,3、...}と同時にv1.2。{1,2,3、..}を維持および開発できますか?おそらく長期リリースブランチ付きですか?または、master1、master2、...?
マイケル

0

基本的には、複製うmasterreleasedevelopあなたが維持されているすべての主要なバージョンの枝を。それらが互いにどのように相互作用するかは同じままです。featureブランチについては、マージする予定の最も古いブランチからブランチに戻るようにしてください。これにより、不要な依存関係が取り込まれないようにします。その後、featureブランチを再びマージするときに、適切な新しいメジャーバージョンの各ブランチに追加のマージを行うだけです。


1
マスターのすべてのポイントはリリースされたすべてのバージョンを含めることではありませんか?
HedgeMage

@HedgeMage、より線形のリリースサイクルではそうですが、並列メジャーバージョンでは非常に非現実的です。
カールビーレフェルト

これは、ホットフィックスを使用した実証済みのトリックや、私が知らないようなトリックがない限り、最も実用的なソリューションのようです。私はgit-flowを導入し、(残念な前提条件として)古いリリース(ホットフィックスだけでなく)を維持/開発しなければならない既存のリリースモデルを維持できる方法を探しています。そのため、v6.1.xがリリースされてから数年後、v5.1.xは(新機能の追加、バグの修正などにより)存続します。約2〜3のメジャーバージョンがいつでもサポートおよび開発されています。ただし、バグ修正は、バグが存在する各バージョンに適用する必要があります。
マイケル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.