8月
21
会社で、新規プロジェクトのレポジトリを git にしよう、という話になったので、git を勉強しています。
git はだいたい以下の通りの物だと認識しています。
- 分散VCS
- ブランチとタグはレポジトリ全体の状態に対して付く。Subversion とは異なり、どちらかというと CVS に近い
- 操作は原則的にレポジトリ全体に対して行う。commit, status, diff など
- ほとんどの操作はローカルファイル操作になる。例外:fetch, push
- オフライン時でもコミット可能
- ほとんどの場合高速
- ブランチ間を渡り歩くのが容易
- 強力なコラボレーション機能
- 強力な歴史改竄機能
- ディスクの消費が大きい
- ディレクトリそのものを管理しない。よって、空のディレクトリをレポジトリに入れられない
- ファイルのリネームを(明示的には)扱わない
会社で複数人で開発している場合は、それでいいと思います。
で、個人的な開発(Ut Video Codec Suite とかですね)で利点が活かせるかどうかと考えたところ、
- そもそもレポジトリがLAN内にあるのでオフラインにならない。出先で開発する気もない
- 同様の理由で元々高速である
- ブランチは作ったことがない
- 一人で開発しているのでコラボレーション機能は不要。未だ(本質的な)パッチが送られてきたこともない
という感じなので、既存の Subversion レポジトリを変換することはもちろん、新規のプロジェクトで git を使う理由もありません。残念でした。
# コミットログの修正やコミット漏れの修正がしやすいのは確かに利点ですが…
no comment untill now