現在、非オープンソース プロジェクトに取り組んでおり、約 50 人のチームで、毎日平均 20 ~ 30 件のコミットを行っています。これらの人々の一部はジュニア開発者であるため、メイン リポジトリに全員がコミットできないようにするシステムを実装する必要がありました。
これまでは、次の構造で SVN を使用していました。
- トランク - すべての開発者コードが含まれていました
- ブランチ - すべての検証済みコードが含まれていました
ときどき、上級開発者の 1 人がトランクに「入り」、それをブランチとマージし、承認されていないコードをすべて拒否します (元に戻す承認されていないコードがたくさんある場合、これはおかしなことになります)。最後に、トランクに承認済みのコードしかない場合は、両者が完全にマージされます。
最近、Git と GitLab を使っていくつかのテストを開始し、Git 承認システムが SVN から移行する価値があるかどうかを確認し、この統合の狂気すべてを和らげました。
最初は有望に見えましたが、しばらくして、魔法の公式は存在しないという残念な結論に達しました。私たちは上級開発者だけが変更をプッシュするためのアクセス権を持つ保護されたマスター ブランチを作成しましたが、後輩開発者に問題が生じました。
おそらく私たちは SVN のやり方に慣れすぎているため、見つけた唯一の解決策は"ジュニア ブランチ"を作成することでした。
何か足りないものがある場合や、問題の処理方法が間違っている場合はお知らせください。
編集 私が承認されたコードと言うとき、私はすべてのクラス構造の検証、正しいオブジェクトのインスタンス化を指しています...改行、タブ(および同様のもの)が正しい場合ではありません。