制御/プロモーションブランチは貴重ですか?
-
10-10-2019 - |
質問
私はSCMにいて、さまざまなツール(Subversion、ClearCase、TFS、Perforce)とテクノロジー(.NET、Java)を使用しています。仕事を始める前に、通常のビジネス順序は、制御されたブランチを作成することでした。
制御されたブランチを次のように定義します。 -開発者がアクセスできないプロモーションコードを含む個別のブランチ。ビルドエンジニアのチームのみがこれにアクセスできます。
制御されたビルド: - 制御されたブランチからコードを取得し、アーティファクト開発者を生成するビルドエンジンは、変更できません。
その結果、このブランチに合流することは、制御されたビルドプロセスの一部として重要なステップになりました。これにより、速度とエラーに関する問題の両方が作成されます(ほとんどが自動化によって軽減されます)。
利点:自動コードロック(開発者はブランチを変更できないため)ブランチ名は異なる場合があります(他のチームは必ずしも標準化されたプラクティスに従うわけではなく、必ずしも必要なプレッシャーをかけることができません。)正確なバージョンコードを見つける簡単な方法状態(つまり、バージョンの制御ブランチの最新コードは、製品に行ったものです)
欠点:開発者と問題を議論する際に、制御されたビルドを使用したSpeed Matching Devビルドは、これは自動化されていますが、少し面倒です)。エラー(プロセスで混乱する別の場所)チェンジリスト/チェンジセット/不変のラベルを使用して、セキュリティ/ロール分離機能を完全に処理できますか?
質問:
現在の制御された支店戦略から移行することをお勧めする必要がありますか?他の利点がありませんか?
解決
あなたがそのブランチに合併しているラベルから多くの変更を行うことを意図していない限り、私はプロモーションメカニズムとしてブランチを使用することをお勧めしません。
a 支店は、開発の取り組みを隔離する必要があります (つまり、ファイルが変更され、新しいバージョンがコミットされるもの)
何らかの種類のメタデータ(ClearCase属性、SVNプロパティ、GITノートなど)に関連付けられたラベルは、さまざまなプロモーションレベルを通じて(不変のコンテンツを含む)当該ラベルのプロモーションを監視するのに十分でなければなりません。
他のヒント
制御ブランチ(メイン)を公式ビルドブランチとして使用しています。開発者は、開発ブランチからの操作の合併により、このブランチへのアクセスのみが許可されています。さらに、メインブランチコードは、現在のソフトウェアのリリース用のバグフィックス専用のBugfixブランチと、コードがリリースごとにラベル付けされている製品ブランチに統合されています。
私は、テストのために構築される(最終的に)生産目的で構築されるものはすべて、カジュアルな開発者アクセスを持つべきではなく、SCMマネージャーまたは他のタイプの司書の役割によって管理されるべきであると考えています。
メインブランチ内に問題が発生した場合、開発者によって開発ブランチ内でこれらのバグを固定し、SCMポリシー内で解像度をメインに戻すことにも断念しています。