私は、1人のユニットから、世界中のプログラマーがいる分散型チームに至る、開発チームの新しい働き方を定義する必要があります。チームはsvnで動作します。これは交渉できないことです。 svnからgitに切り替えることをお勧めしますが、そうなることはありません。私がこのようなことをするのはこれが初めてです。現在、私は次のようなことを考えています。
白いテキストは手動で行われるものです。青色のテキストは自動的に行われるものです。
問題が発生する可能性のあるものを最小限に抑えることが重要であるため(問題が発生したときにサポートを提供する人は、おそらく必要なときにスリープ状態になるため、「すべてのコスト」で最小限に抑える必要があります)、svnトランクのロックについて考えています。コミット前と自動ステップが完了した後の解放。このように、「トランクへのマージ」が失敗することはほぼ不可能です。アイデアは、テストが適切に速く、コミットが完了するまで少し待つことをお勧めします。そうすると、自動部分が失敗する可能性があります。
これは許容できる作業方法ですか?
もしそうなら、これはsvnでできますか?
あなたが説明する作業の方法では、ブランチを使用する利点はほとんどありません。すべてが前後にマージされているので、コミットが統合テストを破る(できればまれに)ケースを除いて、Trunkで直接作業することもできます。すべての開発者が常にプライベートのローカル作業環境を持っていることに注意してください。これは、一種のブランチと見なすこともできます。
単一の(トランク/開発)ブランチでの作業はSVNでは一般的ですが、GITユーザーの間でより一般的なブランチベースの戦略を使用することもできます。分散VCSに依存する(または想定する)戦略のみがSVNで使用できません。
私の推奨は、開発者ごとに個別のブランチを手放し、小さな変更についてはTrunkで作業できるようにすることです。 SVNは、コミットする前に、必要なすべてのマージが実行されるように強制します。より大きな機能の場合、別のブランチを使用すると、進行中の未完了の作業から他のチームメンバーを分離するのに役立ちます。
(トランクへの)各コミットは引き続きCIテストの実行をトリガーし、CIシステムが問題を報告する限り、新しいコミットは行われないことに同意する必要があります(問題を解決するためのコミットを除く)。
これは私にとって非常に良い質問のようです。同じ問題もありました。
トランクベースの開発: を確認することをお勧めします。
1行の要約:
開発者が「トランク」と呼ばれる単一のブランチでコードに協力するソース管理ブランチモデル*は、文書化された手法を採用することにより、他の長命の開発ブランチを作成するというプレッシャーに抵抗します。したがって、彼らはマージ地獄を避け、ビルドを壊さず、そしていつまでも幸せに暮らしています。