疑問解決(バージョン管理)

2009/2/5

バージョン管理とはなんでしょうか?
そんな事必要?
という素朴な疑問。  

・概要

バージョン管理とは、 Concurrent Versions System の事で、Concurrentとは同時・共存・一致する という意味があります。
つまり、バージョンを一致させる、複数バージョンを共存させるシステム ということです。
自分でバージョン管理を行うと、バージョン毎にファイルをフォルダを作ったりします。
さらに、それぞれのバージョンの履歴を管理するために、またフォルダを作り、
気が付いたら フォルダだらけになっていた。 ということが良くあると思いますが、
バージョン管理ソフトを導入する事により、それが防げます。
また、複数バージョン存在しない場合でも、履歴管理に使えますし、
特に有用なのは、複数人で同じファイルを触るときなどに、
同じファイルを触ってしまう等の問題にも対処できる事があります。(完全ではないですが)

・CVSの種類
主なバージョン管理ソフトは、下記のとおり。
ソフト名 提供元
CVS オープンソース
Subversion オープンソース
Visual Safe Source Microsoft
TermSource Borland

基本的に、Subversionは後発でCVSの良いところを補っていると思います。
完全にSubversionの方が優位というわけではないですが、
CVSによる過去の遺産がなく、
まっさらな状態からはじめるのであれば、
Subversionの方が良いと思います。
以下では、Subversionについて述べていきたいと思います。
・Subversion
 サーバとクライアントの構成になります。

 サーバは、Linux版とWindows版があります。
 フック等フル機能を使いたい場合はLinux、
 簡単に使いたい場合はWindowsを利用するのが良いと思います。
 Windowsでもフル機能使用できると思いますが、如何せん情報が少ないです。
 バージョンが1.4以降であればWindows版でもサービスに出来ます。

 C:\> sc create svnserve binPath= "C:\Program Files\Subversion\bin\svnserve.exe --service --root リポジトリルートのパス" depend= tcpip

 また、リポジトリのファイル形態は下記の2通りから選べます。
形態 解説
fsfs バージョンが異なっても読み書きできます。
ただし、ファイル管理による制限が出来ます。
たとえば、FAT32の場合1ファイルは2GB以上のファイルは作成できません。
Berkeley DB バージョンが違うとアクセスできない可能性があります。
その場合、インポートで対応する必要があります。

 使用可能なプロトコルは下記の通りです。
プロトコル(スキーム) 解説
file:/// ファイル共有
svn://

Subversion専用のプロトコルです。
デフォルトポートは3690です。

http://,https:// WEBと同様、http(webDAV)で行います。

 svnプロトコル使用時の認証は、svnserve.confで認証ユーザ、匿名ユーザのアクセス権限を設定できます。
 [general]
  anon-access = read  :匿名ユーザのアクセス権
  auth-access = write  :認証ユーザのアクセス件

 なおアクセス権は、下記から選択です。
アクセス権 解説
none アクセス不可
read 読込可能、書込不可
write 読書可能

 http(s)プロトコル使用時の認証は、ApacheのBASIC認証を使用します。

 クライアントで一番使いやすいのは、エクスプローラに統合される
 TortoiseSVNだと思います。
 エクスプローラで右クリックすると、SVNのメニューが表示されます。
単語 解説
チェックアウト SVNサーバのファイルをローカルにダウンロードします。
最初の1回目に行います。
更新 SVNサーバの最新の状態をローカルに反映します。
コミット ローカルで更新したファイルをSVNサーバに登録します。
追加 SVNの管理対象に追加します。
追加だけでは、SVNサーバに登録されず、
後でコミットをする必要があります。
削除 SVN管理のファイルを削除します。
決してSVN管理のファイルを、通常のファイルと同じように削除してはいけません。
ファイルの”紛失”という状況を招き、
最悪の場合は、チェックアウトからやり直す必要がでます。

 ・Windows版で文字化けをする場合は、APR_ICONV_PATH環境変数が
  設定されているか確認してください。
  具体的にはインストールしたiconvフォルダを指定しておきます。
・Subversionのファイルフォーマットバージョン
 SVNのファイルフォーマットにはバージョンが有ります。
 バージョンを確認するには、リポジトリのdbフォルダ内にあるformatを見てください。

バージョン SVN1.4系 SVN1.5系
×
・Visual SVN Server
 SubversionをGUIで操作できます。
 まだ、ぱっとしか見ていませんが、
 Subversionの全ての機能が使えるわけでは内容です。
 ただ、インストールも簡単。設定もGUIなので手軽にできました。

 なぜ、Visual SVN Serverを利用してみたかというと、
 本家のホームページからWindows版のバイナリパッケージをダウンロードしようとしたところ、
 ユーザ登録が必要になったためです。
 面倒くさかったので、Visual SVN Serverにしたところ、
 予想より使えそうです。
・Subversion クライアント
 Subversionのクライアントとしては、
 TortoiseSVNを使う場合がほとんどです。
 TortoiseSVNをインストールすると、エクスプローラに統合されます。
 そのため、エクスプローラ内で右クリックしてコンテクストメニューを出すと
 SVNクライアントの操作が容易に出来ます。
 また、ランゲージパックもあり、別途インストールすることで日本語にも対応します。

 下記アドレスからTortoiseSVNをダウンロードできます。

 TortoiseSVNのページ
・差分の比較(diff)
 TortoiseSVNには、標準でdiffツールがついているのですが、
 さらに機能があるWinMergeを使い、TortoiseSVNと連携すると非常に便利です。
 WinMergeは下記アドレスからダウンロードできます。

 WinMergeのページ 
 
 WinMerge日本語版のページ

 また、TortoiseSVNは、拡張子毎にdiffツールを設定できるので、
 テキストはWinMerge、Microsoft系のファイルは別のdiffツールという使い方も可能です。

 xdocdiff・・・-TortoiseSVNでWord, Excel, PowerPoint, pdfのdiffを見れるようにするツール
・覚書
 ・scコマンド
 ・BASIC認証
さらに情報が欲しい方は、Google検索で  
Google
・TOPへ戻る

メールはこちらに