Subversion(svn) について
svnにも様々なコマンドがあるため、一つ一つのコマンドの理解を深めるために記述したいと思います。
まず、様々なコマンドがある中で、中心となるコマンドについて書いていきたいと思います。
簡単な説明ですが、バージョン管理システム「Subversion」はバージョン管理システムの歴史は古く、一台で各種の作業が可能となる機械となったころからプログラムのソースコード管理に利用されているものです。
現在では、SubversionやCVSの集中管理型(クライアント・サーバ型)や、Git/Mercurial/Bazzarなどの分散型と呼ばれるバージョン管理システムがあります。
基礎
1.リポジトリ
リポジトリとはSubvirsionで管理されるソースコードやファイルを格納する場所のこと。
この格納する場所を作成することでもあり、通常リポジトリの作成作業は最初の1回のみ。
・リポジトリの作成
TortoiseSVNの場合
2.新しいフォルダを作成し、名前をつけてください
3.新しく作成したフォルダで右クリックし、TortoiseSVN→ここのリポジトリを作成を選択。
・リポジトリへのローカルアクセス
そのフォルダへのパスが必要。file:///C:/SVNRepository/
という形で表す。
・リポジトリのレイアウト
リポジトリにインポートする前に、データをどのような構成にするかをはじめに考えます。
主なリポジトリの構成には標準的な、おすすめ方法
●開発の「メインライン」を保持するためのトランク(trunk)ディレクトリ
●ブランチコピーを入れるブランチ(branches)ディレクトリ
●タグコピーを入れるタグ(tags)ディレクトリ
を作成する。
リポジトリに複数のプロジェクトがある場合、
下記のようにサブディレクトリでまとめたレイアウトにしたり、
/trunk/paint /trunk/calc /branches/paint /branches/calc /tags/paint /tags/calc
プロジェクトごとにまとめるなどのケースがあります。
/paint/trunk /paint/branches /paint/tags /calc/trunk /calc/branches /calc/tags
Case1:
プロジェクト同士があまり密接に連携していない。それぞれ個々にチェックアウトできるなら、プロジェクトごとにまとめる方法が便利
Case2:
プロジェクト同士が連携している場合。一度にすべてチェックアウトしたいと思うこともあることからひとつの配布パッケージに結合されるプロジェクトなどはサブディレクトリでまとめたほうが便利
ひとつのトランクをチェックアウトするだけで済むこと、サブプロジェクト間の関係も容易に把握できる。
・リポジトリのバックアップ
リポジトリのフォルダをバックアップ領域にコピーすること
注)データにアクセス中の別のプログラムが一切ないことを確認しておく必 要。もし、コピー中にリポジトリにアクセス(WEBブラウザーが開かれている、WebSVNなど)があると、バックアップしたデータは不正になる。
svnadmin hotcopy path/to/repository path/to/backupの利用
安全にリポジトリのコピーを作成できる方法で、コピーしたものをバックアップする。
svnadminはSubversionコマンドラインクライアントのインストール時に自動でインストールされます。
・サーバー側フックスクリプト
後日記載。
・チェックアウトリンク
後日記載。
TortoiseSVN→ヘルプ(参考)