支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • バージョン管理ソフト概要

1.バージョン管理とは

開発業務にてよく使用されているのが、バージョン管理ソフトとなります。
バージョン管理ソフトを使用すると、開発が一度完了した時点でそれをバージョン1とすると、もしバグが存在しているなどで修正が必要な場合、バージョン1はそのままとして、バージョン1.1を作成しそちらを修正して修正が完了したところでバージョン1を1.1に置き換えます。もしくは、現時点の機能にさらに機能追加を行う場合、バージョン1はそのままとして、バージョン2を作成しそちらに新規機能を追加もしくは改修を行い、開発が完了したところでバージョン1を2に置き換えたりします。また、バージョン2に置き換えた後に致命的なバグが存在していた場合などに、バージョン1に置き換えることも可能となります。
バージョン管理は、大きく分けると「集中型」と「分散型」が存在しています。
集中型とは、 複数の作業者が同じファイル群を扱う場合、1つのサーバで稼働して誰でもそのサーバからファイルのコピーを取得して作業ができます。 変更した内容につきましては、サーバにある内容に反映(コミット)できます。 また、他の利用者が更新操作を行ったことにより、サーバ内のファイルが変更されると、その内容も自分の環境に同期できます。ここで、サーバ内にあるファイル群のことをリポジトリと呼びます。 サーバ側では全ての変更過程を記録していますので、この記録をもとにどんな変更でも前の状態に戻したり、変更した時に何が行われたかを知ることができます。 変更をサーバに保存するとリビジョン番号というものが生成・増加されます。リビジョン番号は、書籍で例えると、改訂版の番号(第1版、第1.1版等)にあたるようなもので、変更を識別する一意のシンボルになります。 集中型のデメリットとしましては、オフラインの状態では最新のファイルをリポジトリに取得・反映することができないこととなります。
集中型のバージョン管理ソフトとしては、「CVS(Concurrent Versions System)」、「SVN(Apache Subversion)」などが存在しています
分散型とは、独立したリポジトリを用意して、他のリポジトリと同期することができますので、分散型は複数のリポジトリを持つことができます。 集中型のように1つのサーバにリポジトリを置き、サーバから複数の作業者がリポジトリをローカルにコピーして作業が行え、必要に応じてリポジトリ間で変更点をやり取りすることができ、サーバに反映することが出来ます。 このため、中央集中型ができないことを分散型では可能になり、リポジトリが複数存在することから分散型と呼ばれます。
分散型のバージョン管理ソフトとしては、「Git(ギット)」などが存在しています。

2.バージョン管理ソフト

バージョン管理ソフトとしましては、「1.バージョン管理とは」にて既に、「CSV」、「SVN」、「Git」をあげておりますのでこれらの概要を記載いたします。
CVS
CVSとは、単独型のRCS(Rivision Control System)のアーキテクチャを踏襲した、集中型のバージョン管理ソフトとしてリリースされたものとなります。 RCSとは、初期のバージョン管理システムの1つとなります。 CVSにつきましては、ファイルの名前変更、削除やディレクトリの移動の管理がうまくできないこと、異なる文字コードに対するサポートがないことなどの欠点がありました。 この欠点を解消すべく作成されたのが、SVNとなります。SVNの登場によって、集中型バージョン管理ソフトの主流がシフトしたこともあり、開発は既に終了しています。
SVN
SVNとは、CSVの欠点を解消すべく作成された、集中型のバージョン管理ソフトとしてリリースされたものとなります。 SVNが、ファイルや変更の履歴などを保存する場所をリポジトリといいますが、SVNの場合は1つのリポジトリを使います。開発に参加するメンバーは、リポジトリからソースコードを持ってきて編集し、編集が終わったらリポジトリに直接反映することとなります。
Git
Gitとは、プログラムのソースコードなどの変更履歴を記録、追跡するための分散型バージョン管理ソフトとしてリリースされたものとなります。
Gitは、Linuxのソースコード管理に用いるために開発され、それ以降多くのプロジェクトで採用されています。 分散型であるGitは、リポジトリを複数もつことができます。 たとえば、大人数でシステム開発を行う場合、何人かずつで1つのリポジトリを使用してプログラムを作成し、定期的に全体のリポジトリに反映する、というような使いかたをすることが可能となります。

3.最後に

開発業務を行っているとなにかしらバージョン管理ソフトが使われることが多いと思います。バージョン管理ソフトごとに使い方は異なりますので必要に応じて覚えるようにして下さい。