私たちは最新のiOSプロジェクトでGit Flowを使用しており、QAで作業する方法を模索しています。QAを使用して、修正されたバグを心配することなく、新機能をテストできるだけでなく、最新のリリースをテストできます。どの枝。
現在、彼らはrelease/v1.0.1
ブランチでテストしており、元のrelease/v1.0
からいくつかのバグが修正されています。同時に、v1.1リリースで計画されている新機能に取り組んでいますが、release/v1.0.1
と同時にdevelop
ブランチから分岐しているため、バグ修正はありません。
本日、QA部門が私の新機能を試乗したいと考えています。ただし、自分のブランチからビルドを作成した場合、再テストしてクローズしたバグ修正はそこには含まれません。そのため、再導入されたバグについての苦情やパニックが殺到します...避けたい!
それで、彼らにこれをテストさせる最良の方法は何ですか? release/v1.0.1
を機能ブランチにマージすることはできますが、release/v1.0.1
がリリースされる前にdevelop
にマージしないように注意する必要があります。方法論。 QAテスト専用の完全に新しいブランチを作成し、私の機能をrelease/v1.0.1
とマージすることができますが、このブランチで見つかったバグをどうすればよいですか? QAのラウンド後、どこにマージし直すのですか?
これらすべてに加えて、ビルド番号とバージョン番号を考慮して、意味がわかるようにする必要があります。現在、リリースに使用されているのはバージョン番号であり、ビルド番号はQAの新しいビルドごとに増加します。ただし、2つの別々のブランチからビルドを受け取っている場合、ビルド番号の衝突が発生して混乱を招く可能性があります。
これらの問題に対処する最良の方法は何でしょうか?
最初の図の一部については、回答全体を通して nvie.comのGitフローページ から参照します。完成させるために、以下にスクリーンショットを追加しました。
本日、QA部門が私の新機能を試乗したいと考えています。ただし、自分のブランチからビルドを作成した場合、再テストしてクローズしたバグ修正はそこには含まれません。そのため、再導入されたバグについての苦情やパニックが殺到します...避けたい!
それで、彼らにこれをテストさせる最良の方法は何ですか?
release/v1.0.1
を機能ブランチにマージすることもできますが、リリース/v1.0.1がリリースされる前に開発にマージしないことを確認する必要があります `...
番号;リリースブランチを機能ブランチに直接マージしないでください。 Git Flowモデルによると、(継続的に)
release/v.1.0.1
をdevelop
ブランチにマージし、develop
を機能ブランチにマージし、release/v.1.0.1
からの安定した変更を機能ブランチに取り込むため。
(残念ながら、上の画像はdevelop
からfeature
への継続的なマージを示していませんが、それはあなたがすべきことです。)
QAテスト専用の完全に新しいブランチを作成できます。これは、私の機能を
release/v1.0.1
とマージします[...]
あいまいさがいくつかあります。 feature
をrelease/v1.0.1
にマージすること、またはrelease/v1.0.1
をfeature
にマージすることを提案していますか?新機能をrelease/v.1.0.1
に導入するには遅すぎるため、前者を行うべきではありません。それらは、将来のリリース、つまりafterv1.0.1
で出荷される必要があります。左側のバブルを読みます。
また、後者も行わないでください。少なくとも、直接ではありません。上記で説明したように、release/v1.0.1
からfeature
に変更を加えるには、最初にrelease/v1.0.1
をdevelop
にマージしてから、develop
をマージする必要がありますfeature
;これは、feature
をdevelop
にマージする準備ができる前に、複数回発生する可能性があります。
Git Flowモデルに従っている場合は、
したがって、他の機能がv1.1
に組み込まれることになっている場合、QAに新しい機能の確認を依頼することはできません。他の機能が完了するまで待つ必要があります。 v1.1
のすべての機能が完成してdevelop
に統合されたら、release/v1.1
ブランチを作成します(これはdevelop
の頭から派生します)。次に、そのブランチのテスト/安定化を開始するようQAに依頼します。
一方、QAに独自の新機能のテストを依頼する前に、他の機能が完了するのを本当に待つことができない場合は、中間リリースブランチ(v1.0.2
と呼ばれる)を作成する必要があります。 develop
をテストし、QAにrelease/v1.0.2
をテストするように伝えます。十分に安定化したら、master
(およびdevelop
)にマージします。