まえがき
私が新人類になった(と思う)ので原始人だったあの頃の私に向けて
#わたしはサルじゃない
サルでもわかるGit入門
http://www.backlog.jp/git-guide/
非常にわかりやすい作り。(ヌーラボ様いつもお世話になっております。この場を借りて謝辞)
ただし、私はサルじゃない=SVNは利用したことがある=原始人
GitとSVN
##違うことと違わないこと
どちらもバージョン管理ツール
違いはただ一つ文化が違う
ざっくり表にしてみる
tool | 主構成 | 振る舞い | マージ | たいせつにしたいもの |
---|---|---|---|---|
SVN | trunk | ソースロック | ファイル | ファイル履歴 |
Git | branch | コードレビュー | すべて | 分岐&統合の履歴 |
主構成
SVNはtrunkが絶対である、厳密な運用をしているプロジェクトであれば結合テストが通らなければコミットすらできないというコード運用をしている。
Gitはすべてbranchである。trunkなんてものはなく、branchをどんどん統合&分岐を繰り返してうねうねと運用していく
振る舞い
どんなプロジェクトでも簡単に侵しては行けない領域と言うものが存在する。ではそれをどうやって運用するか
SVNはソースをロックすることで明示的に誰も触れなくしてしまう。
Gitは基本的にコミットは可能だ、だがコードレビューが利用できる。だれにも触ってほしくなければすべてのコードレビューでNOと言えるようになろう。
マージ
マージを実施すると
SVNではマージとはマージ先のファイルの更新である。マージ元に至っては何も影響がない。
Gitではすべてがマージされる。マージ元とマージ先は同じリビジョンになる
たいせつにしたいもの
SVNではファイルの履歴がすべて。
Gitではブランチ&マージの履歴がすべて。
参考サイト
SVN Tutorial
http://www.tutorialspoint.com/svn/
サルでもわかるGit入門
http://www.backlog.jp/git-guide/
SVN脳患者から見たGit
http://qiita.com/kaityo256/items/81e7951a1ca2706955a4
SVNからGitに移行して分かった、今すぐSVNを捨てるべき3つの理由
http://catcher-in-the-tech.net/806/
あとがき
Gitの次はなんだろうと思った。AWSに代表されてる強固な堅牢性とほぼ無限なデータ容量の波はずっと続くだろう、となると既存のファイルシステムとGitが統合していくような気がする。もしかしたら境目はなくなってしまうかもしれない。となると分散型は再度失われて、集中管理型のVCSとローカルで強力なファイルシステムで構成される次世代のVCSができるのかもしれない。