IT・ゲーム業界人なら知っとくべきバージョン管理ツールのまとめです。
バージョン管理ツール?gitでしょ?みたいな古い思考の方は気をつけて下さい。
なかなかこの界隈も進歩していくものです。
そんな業界人である私が最新事情をお届けします。
そもそもバージョン管理って?
ひとつのファイルやフォルダに対して変更を記録して後でいつでも戻せるようにするのがバージョン管理です。
ですのでこの時の状態を再現したいなどの用件をすぐに叶えることができます。
それをサポートするのがバージョン管理ツールです。
代表的なバージョン管理ツール
- Subversion
- Git
- Perforce
この3つさえ押さえとけば問題ないでしょう。
この中で聞いたことないものが混ざっているかもしれません。
Perfoce
実はこいつなかなかすごいやつなんです。
ではそれぞれ見ていきましょう。
Subversion
集中型のバージョン管理です。
ぶっちゃけあまり使うメリットがないですね。
1リポジトリに対して全員が同一作業を行います。
ひとつのファイルを全員で触っているようなイメージです。
そのような形なのでファイル占有ロック機能を持っているのが特徴です。
Git
みんな大好きGitさん。お世話になっております。
分散型バージョン管理です。
1つのリポジトリを複製(ローカルリポジトリ)し、変更点を好きなタイミングであげます。ローカルでの変更でOKなものを全員に共有していくのでかなり安心です。
解説しているサイトはたくさんあるのでそちらを参照下さい。
Perfoce
颯爽と現れた期待の新人です。
日本ではまだあまり有名ではないようです。
Gitのバージョンアップしたものと思ってください。
最大の利点は
- 超高速
- リモートリポジトリがGitに比べてサイズが小さい
Gitの弱点をご存知でしょうか。
大規模開発になると総ファイル数や総コミット数が莫大に増えていきます。
Gitによるバージョン管理ですとコミット数に応じてリポジトリサイズが莫大に増えていきます。それこそ数10GBや100GBなんてあっという間です。
そしてファイル数や総コミット数が多くなるとGitの動作自体が非常に重くなります。
新しくプロジェクトに入ってきた人がチェックアウトしようとすると重くて数時間クローンできないなんてこともざらです。
そこを解決したのがPerforceです。
リモートリポジトリのサイズは計測データをお見せできないのですが、場合によっては10分の1程度まで下がります。
それはバージョンを管理するのがおそらく差分しか保存されていないからです。
また独自技術により体感値的にも高速で動作します。
名前があまり聞かないのも、個人開発者ではGitで事足りるのであまり聞かないのでしょう。しかし、大規模開発になってくるとPerforceは必須レベルです。
公式サイトにも載っていますが、スクエニ、ソニー、EA、サムスンなどに導入実績があります。
もし大規模開発でGitの低速動作、リモートリポジトリの肥大化に悩まされていたら導入してみてください。
ただし有料です
まとめ
いかがだったでしょうか。
個人開発か無料で選ぶならGit
大規模開発ならPerforce
を使用すればいいと思います。
その他にもオススメあれば是非コメントにて教えて下さい。