2013-06-27 9 views
5

私たちには、法人顧客がいるウェブアプリケーションがあります。私たちは最近、SaaSアプリとして提供し、企業の提供と並行してリーン・アプローチをとることに決めました。つまり、生産に移行しない可能性のある実験を行っています。新たに痩せたチームのGitブランチ戦略

我々はリーン行く前、我々は以下の分岐戦略に満足していた(私はそれはかなり標準だと信じて):

  • マスター - 常に安定し
  • DEV - しばしば不安定(機能ブランチを切断新しい機能のためのdevの に次のメジャーリリースに行く)
  • major_release_x - ライブ(デバイスがマージされた後のマスターのカットオフバグ修正が行われ、我々は上記のほかに次のようしているマスターとDEV)今

にマージどこマスターへのが、これがあると、それはすべてがうまく働いていない:

  • lean_release_branchから
  • experiment_x(major_release_xを遮断し、 実験が含まれています)生きる - メートルその後、私たちは一緒に 機能をハック場所です(major_release_xを遮断し、

私たちのシナリオは今リーンアプローチは指示通り、我々は多くの場合、迅速な解放する必要があるとということであり、我々は任意の何かに固体のフィードバックを得るとき、我々はそれをproductionizeとすぐそれを解放する必要があります)lean_release_branchにそれをERGE可能な限り(lean_release_branchのオフ)。

問題(それが最も可能性の高い不安定であるとして)私たちはDEVのオフ機能ブランチを作成することはできませんし、私たちは二つの理由lean_release_branchのオフ機能ブランチを作成することはできませんという。

  1. は、そう、この変更/特徴は、マスター
  2. は常にリリースする準備する必要がlean_release_branchに戻ってその方法を作ることができなくなり、実験コードによって汚染されているので、私たちは忙しいことはできません行う

私たちのセットアップの方が良い戦略を知っている人はいますか?いいえ、それは誰ですか?

+0

2番目の最後の段落で、機能の再評価がリーンリリースの一部になる必要があるという実験の良いフィードバックの後で、メジャーリリースの一部になるのはいつですか? –

+0

@NieldeWet私が言及している "確かなフィードバック"は、実験と無関係なものになるでしょう。したがって、私たちは直ちに生産し、できるだけ早くlean_release_branchから解放し、その後、将来のメジャーリリースに入るためにはdevへの道を見つける必要があります。 –

答えて

0

私はちょうどTFSからGITに変更しました。私が従うモデルはpostに基づいています。

あなたの実験に関しては、それは開発するために戻ってこない "機能的な枝"です(開発に統合されました)。

+0

多分、nvieのワークフローに関する少し異なった見方があります。https://speakerdeck.com/ewoodh2o/a-sane-git-workflow – Zavael

0

major_release_xですべてがDEVDEVが最後のメジャーリリース前マスターにマージされましたので)(成功した実験以下)productionised機能にすでにあるオフ機能ブランチ上で行うことができますのでproduction_feature_yそれを呼び出す、をmajor_release_x、その後、次のメジャーリリースであることを、両方のDEVにマージ、およびlean_release_branch

このようにして、新しい生産機能がリーンリリースで利用可能になり、次のメジャーリリースになります。また、ブランチブランチを再度マージする必要はありません。機能の

さらに顧客からのフィードバックは、production_feature_yに実装され、再びDEVlean_release_branchにマージすることができます。

バグ修正は、同じ方法で処理major_release_x分岐に行われ、major_release_xlean_release_branchの両方にマージすることができます。

+0

これは実際に私たちがいくつかのフィードバックを生産した方法ですが、それはポイント番号に違反します。 2: "lean_release_branchは常にリリースする準備が必要です。したがって、修正およびリリースする必要のある重大な問題がある場合は、変更および機能をマージした後、テストおよび修正を行うことができません。" –

+0

しかし、それが自身のブランチ上でプロダクション機能を実行している場合、マージされるまでには、プロダクションの準備ができてリリースされるはずです。 –

+0

まず、テストレビューが行われ、機能ブランチ上で開発者がテストした後にテストサーバーにリリースする必要があるため、ビルドジョブを使用してブランチに移動する必要があります(ただし、lean_release_branchではなく100%安定している必要があります)。 –

2

GitFlowノザリ以外にも、GitHub Flowがあります。私が働いているところは、基本として(マスターは常に安定していて、機能ブランチで開発し、合併前にレビューで要求を引き出す)。私たちはGitHubよりもあまり頻繁にデプロイしないので、マスターではannotated tagsを使用してリリースを追跡し、軽量タグはステージング/プロダクションのコミットを指します。これはcapistrano-deploytags Ruby gemによって管理されています。

私があなたの問題を間違って読んでいるのでなければ、すべてのブランチで複雑さを減らして同じ戦略を達成することができます。

関連する問題