今回から数回にわたり弊社のバージョン管理方法についてお話しさせていただこうと思います。
例えば、ファイルを修正する際、後からどのように修正したのか確認したいので、バックアップをとっておきたいときがあるとします。
その際、修正前のファイルを名前を変えて保管したりすると思います。
何回も修正すると同じようなファイルがいっぱい出来上がって、ファイルを管理するのが大変になる経験をしたことがある人もいるでしょう。
また、複数人で同じファイルを編集して、前の人の修正を知らずに上書きをしてしまって困った人もいるでしょう。
そんなときにバージョン管理システムが役立ちます!!
バージョン管理システムとは
ファイルの変更履歴を管理するためのシステムです。ファイルの更新日時、誰がどの箇所を更新したのかを管理するのが目的で作られたものです。
システムを導入しておくと、いちいちファイルを複製してバックアップをとる必要がなくなります。
このような利点から弊社でもバージョン管理システムを導入してます。使用用途としては、主にプログラムのソースや資料を管理するために使用してます。
どんなのがあるの?
バージョン管理システムは用途に応じてたくさんあります。代表的なもので、Subversion(以下、SVN)、Git、CVS、Mercurialなどがあります。
弊社が主に使用しているのは、SVNとGitです。
SVNとは
集中管理型のバージョン管理システムです。
共有リポジトリに対して、複数の人間がアクセスし、ファイルを編集します。サーバ上の同じファイルを複数人で編集するようなイメージです。
SVNはその仕様上、誰かが修正したファイルを知らずにファイルを編集すると、他の人の修正を自分の修正で上書いてしまうことがよくあります。(※他の人のファイルを反映してから編集すれば問題ありません)
なので他の人とかぶらないようにファイルを編集する必要があります。
ただ大きな案件になってくると、複数の作業が同時に発生し、複数人が同じファイルを編集することはよくあります。
それを解消できるのがGitです。
Gitとは
分散管理型のバージョン管理システムです。
共有リポジトリ(リモートサーバ)だけでなく、自分の端末にもローカルリポジトリが存在し、ローカルで編集を行ってから、リモートサーバにアップします。
自分の端末で修正を行い、問題なければリモートサーバにアップすることができます。
仮に、他の人が同じファイルを修正していてもリモートサーバにアップする際、差分を表示してくれますので間違って上書くようなことは起こりません。
他の人の修正を気にすることなく作業ができるので重宝してます。
次回はGitをもう少し詳しくお話ししたいと思います。