好きなところ嫌いなところ(SCM編)
個人の見解です。
私のステータス
- SCM は CVS から使い出した。
- 楽観的排他処理、悲観的排他処理(Microsoft Visual SourceSafe)も使ったことある。
- Subversion は早10年ぐらい使っている。
- git は個人的に github をちょっと使っている。
- やっと git を 1 年ぐらい運用してみた。
Subversion
好きなところ
- 集中管理なので、マネジメントしやすい。一括置換とかやりやすい。
- GUIのツールでデファクトがある。Windowsならファイルシステムと統合されたツールがある(操作のハードルが低い→言い方悪いけどアホでも使える)。
- (集中管理なので)Gitに比べたら概念・思想とか操作がわかり易いから導入ハードルが低い。説明もしやすい
- (好きなところというわけではないけど)利用期間が長いから運用ノウハウが溜まってる。
嫌いなところ
- ローカルコミットできない。ローカルコミットできる様にするのにサードパーティのツールが必要。
- MacではGUIツールのデファクトがない(Versionsもイマイチだし)。ファイルシステムと統合できていない。
- Apache わざわざ入れて運用しないといけない(別にsvnプロトコルでもいいんだけど)。しかもWebDAV。
- 下火なのでインターネットでの情報量がへってる
- デファクトのワークフローがない。
Git
好きなところ
- ローカルコミットできる。
- 分散管理なので、利用者個人にマネジメントを委譲できる。
- GUIのツールでデファクト(今だとSourceTreeかな)がある。
- GitHubというデファクトのサービスがある。リポジトリ運用のプラクティスとか有用なツールとかがが転がってる。
- オープンソースの開発スタイルにはベストマッチなところ
- コミットされたブランチが不安定になるのを避けることが可能(運用次第。可能性が低くなるのはその通り)。ただし、ブランチが不安定になることがそれほど致命的でない(少人数・活動時間に差がない)場合は、gitである必要性が薄くなる(結局トレードオフの問題)。
- ワークフローにデファクトプラクティス(git-flow)がある。ただし、git-flow コマンドでブラックボックスになるので、なんか違うことやりたかった場合に git コマンドを駆使して戻す必要がある。
嫌いなところ
- Webインタフェース(gitbucket、gitlabなど)ないとなかなか使いづらい。Gitがスゴイのではなく、GitHubがスゴイと思う。
- マージめんどくさいことがおおい(マスタからの乖離度合いが大きくなりがち)。
- PCのファイルシステムと統合できるツールがまだあまりいいのがない
- リビジョン番号が番号じゃないからポインティングを口頭でできない
- リポジトリ肥大する
- Redmineのリポジトリで使うのにめんどくさい
- リポジトリがUnicodeじゃない(Subversionもだけど)。