開発現場にて使用している「SVN」について簡潔にまとめていきます。
そもそもSVNって何?
正式名称は、「Apache Subversion(アパッチ・サブバージョン)」。
オープンソースのバージョン管理システムであり、誰でも無償で利用することができます。特に複数人で行うソフトウェア開発においてはソースコードやドキュメントの管理目的で重宝され、データの復旧や変更内容の履歴チェックが可能です。
SVNとGitの違いは?
一言で言うと、SVNは 「集中型バージョン管理システム」 、Gitは 「分散型バージョン管理システム」 に大別されます。
集中型バージョン管理システム・・・サーバにある「リモートリポジトリ」でソースコードのバージョンを管理しています。開発者はリモートリポジトリにアクセスして自身のローカルPCに指定したバージョンのソースコードをチェックアウト(ダウンロード)して開発します。また、修正や追加したソースコードはリモートリポジトリへコミット(登録)します。
分散型バージョン管理システム・・・開発者自身のローカルPCに「ローカルリポジトリ」を持ちます。開発者はこのローカルリポジトリに修正や追加したソースコードをコミットし、リモートリポジトリにプッシュ(反映)することでローカルリポジトリとリモートリポジトリの内容を同じに合わせます。
基本用語一覧
リポジトリ(repository)
Subversionの核となる部分。ファイルや更新履歴、変更内容などを集中的に格納する場所(書庫のようなイメージ!)。
チェックアウト(checkout)
リポジトリから初めてファイルを取り出しローカルに保存すること。
作業コピー(working copy)
チェックアウトで作成されるリポジトリのコピーのこと。
.svnフォルダ
作業コピーを管理するのに .svn というフォルダを使用する。
※隠しフォルダとなっている点は要注意!
コミット(commit)
ローカルコンピュータ上の作業用コピーに加えた変更をサーバのリポジトリに反映すること。
リビジョン(revision)
リポジトリがコミットを受け付けるたびに発行される番号のこと(別名:バージョン番号)。
ブランチ(branch)
開発ラインを分岐(履歴の流れを分岐)して記録していくためのもの。分岐したブランチは他のブランチの影響は受けないため、複数の開発ラインを並行して進めていくことを可能に。
タグ(tag)
ある時点のプロジェクトの「スナップショット」に該当するもの。
リバート(revert)
作業用コピー上で行われた変更を元に戻すこと。
コンフリクト(conflict)
同時に同じファイルに修正等を行い、作業が衝突すること。
更新(update)
リポジトリ上から変更のあったものを再ダウンロードすること。更新を行うと、ユーザがリポジトリに対して加えた変更と作業用コピーが同期されます。