私は、私たちの会社のために新しい分岐戦略を提案しようとしています。私が来たもので説明していないエッジケースがあるかどうかは疑問ですと一緒に。TFSでフィーチャ分岐戦略を行う方法
まず、ここに私たちの現在の分岐戦略です:
各チームは、彼らがチーム3のような独立したQA環境を持っていないので、チーム1と2が非常に小さい、独自の開発ブランチがあります。各チームは変更をメインにマージし、開発ブランチに戻します。
現在、私はチーム3に属しています。置き換えたい戦略は、特にチーム3のセクションの下にあります。私たちはチェンジしてMainからINTへのチェンジセットをQAからDevへ、そしてすべての方法で再びチェンジします。フルブランチマージはなく、私たちが行うすべてのマージは、単にチェリーを選ぶという事実のために、根拠のないマージであると信じ始めています。
私は何をしようとしていることは、私が作ってみたものをここでは、常に桜チェンジを選んで、全体のブランチをマージするに戻る必要性を排除するのです。
長時間実行のためにフィーチャーブランチとdevを作成する機能は、次のリリースで本番運用に向かうバグやユーザーストーリーを主に扱うために使用されます。
QAブランチでの開発は行われていません。テストの準備ができたら、DEVからのQAまでの変更のみをマージします。
すべてのテストに合格したら、Mainにマージし、次のリリースのためにmainのバージョンブランチを作成します。バージョンブランチは、複数のチームがメインにマージするので、修正プログラムを実行するためのクリーンなブランチを持つことができます。
可能な限り機能ブランチとシェルフセットを利用して、チェリーセットをチェリーピックする必要性をなくし、現在行っているマージ競合の狂気の量を減らすことを望みます。
これは効果的な戦略のようですか?
機能のトグルを使用してオーバーヘッドがたくさんあるように思え..私は、私はアプリケーション内で、あるいはどのように実装されるかもしれない機能のすべての新しい部分のためのif文書きたいかわかりません –
@ ThePaxBisonica、このウェブサイトで機能の分離をチェックすることができます:https://www.visualstudio.com/en-us/articles/branching-strategies-with-tfvc#feature-isolation、またはウェブサイトからブランチング戦略をダウンロードしてください。https://vsarbranchingguide.codeplex.com/downloads/get/801996 –
私の経験から、機能のトグル切り替えは、機能間で共有されている事柄に関して非常に厄介なものになり、良い習慣ではありません。完成したフィーチャセットを分離するために、バージョン管理を使用する必要があります。開発部門は定期的にフィーチャブランチとマージされ、フィーチャブランチが古くなり、マージが困難になるのを避けるために対処する必要があります。フィーチャーブランチは、できるだけスプリントを通って生きてはならない。そうした場合、一時的な機能のトグルを使用できますが、次のスプリントの終わりまでに削除する必要があります。試験後に支店を厳しく昇進させることに同意した。チェリーピッキングはありません。 – Kevin