S-Collection株式会社 システムについて

S-Collection株式会社のシステムサポート事業

CVS、SVN、Gitの違いについて②

CVSSVN、Git・・・開発方法に合わせて活用!バージョン管理システム

前回はバージョン管理システムについてと、CVSの解説を行いました。こちらではSVN、Gitについて紹介します。

CVSの問題点を解決したSVN

広くつかわれていたCVSですが、ファイルの名前変更・削除やディレクトリの移動がうまく管理できないこと、異なる文字コードに対するサポートがないことなど、欠点もありました。
そこで、この欠点を解消すべく作成されたのが、SVNApache Subversion)です。
1つのファイルずつの履歴管理をしていたCVSに対し、SVNではひとまとまりのファイルを構造ごとまとめて履歴管理することで、ファイルの名前変更や削除にも対応するなど、さまざまな機能が改善されました。
また、つかいかたはCVSとほとんど変わらないため、CVSからSVNに移行をする人も多く見られました。

 

分散型のバージョン管理システムGit

2005年、Gitと呼ばれるバージョン管理システムLinuxから発表されました。
Gitは、大規模プロジェクトにも対応できるよう、動作のスピードに重要度を置いて作成されています。

※Gitに関する詳しい解説は、ブログ「Gitつかいこなしていますか?Git、GitHubのつかい方①—概要編―」を参照してください

 

GitがCVSSVNと異なる点は、各ローカルにリポジトリ開発過程が保存されるデータベース)の複製を作成し、ローカルごとにバージョン管理を行える点です。ローカルごとにバージョン管理を行い、そのあとで中心のリポジトリとバージョン管理の情報を共有します。このことからGitは、分散型バージョン管理システムと呼ばれます。
なお、CVSSVNは、その性質上、集中型バージョン管理システムと呼ばれます。

 集中型と分散型の違い

集中型バージョン管理システムであるCVSSVNは、1つのリポジトリを使用します。
たとえば、システム開発のメンバーでファイルを共有する場合、メンバーはこの1つのリポジトリからソースコードを持ってきて編集し、編集後はまた、この1つのリポジトリソースコードを反映します。
ただし、この集中型の場合、リポジトリとメンバーの端末がネットワークで繋がっていなければ、ファイルの変更履歴をリポジトリに反映することができません。

それに対し、分散型であるGitは、リポジトリを複数もつことができます。
たとえば、大人数でシステム開発を行う場合、何人かずつで1つのリポジトリを使用してプログラムを作成し、定期的に全体のリポジトリに反映する、というようなつかいかたをすることができます。

このように、Gitを使用すると開発の規模に合わせて設定を行えるうえ、開発者同士が柔軟に作業を進めることができます。しかし、仕組みや使用方法が複雑なため、集中型にくらべて習得のための教育コストがかかります。

以上から、どのバージョン管理システムを使用するかは、システムの規模やコストなどを考慮して、決定することになります。

S-Collection株式会社には、経験豊富な技術担当者が在籍しています。企業さまにとっての最適な問題解決方法を一緒に考えさせていただきます。変更履歴の管理についてお悩みの際は、ぜひ一度ご相談ください。