SCM を選択する際の判断軸
2019年4月時点では、記載の要件を Git がほぼほぼ満たせるようになったので、これから SCM を選択する際に、 Subversion を理由なしに選択することはないと思います。
特に GitHub、GitLab などの統合型のツールや GUI 、関連(連携)する機能の整備も十分されてきているため、ほぼデファクト・スタンダード化しているかと。
そうなると、天の邪鬼的になにか違うのが使いたくなる。。。
バイナリファイルを悲観的排他処理で管理できるオープンソースの SCM がほしい。
前提
- スキルレベルが一様でない組織で利用。
- 管理物をインターネット上に載せられないれないものもある。
SCMの選択肢
利用するSCMは以下のいずれか。
選択肢に上げなかったSCM達
-
Mercurial
- あんまり日本(身近で)で流行ってない。あんまり見たことないぐらいの雰囲気。
-
Bazaar
- Bazzar: 日本語使えるけど、GUIのクライアントがいけてない。
- CVS: 古い。トランザクション管理できない。
要件
- 中央管理がしたい。ソースコードを一括置換とかをする場合がある。
- リビジョンのポインティングを(簡易に)行いたい。
- コードレビューをしたモノだけがリポジトリに登録されなければいけない
- スキルセットが似たり寄ったりの開発者数名で開発する
- どんなスキルセットもってるかわからない開発者が数名〜数十名で開発する
- Reddmineと統合する
- Jenkinsと統合する
- 全てのコードに対してコードレビューが不要。コードレビューが不要なスキルレベルのメンバーがいる。
- 開発ラインが多数発生する
git の目指すべきところ
- コミットされたブランチが不安定になるのを避ける