Subversion
subversionについて
鵜飼さんのLinuxWorldExpo/Tokyo2003でのSubversionについてのプレゼン資料
Subversionによるバージョン管理
特に後者のCVSとの違いに関する項は参考になりました.
インストール
FreeBSDに,できるだけ手を抜いてsubversionをインストールします.
ちなみに,バージョンは,5.3-RELEASEやら4.11-PRERELEASEやらです.(時期のメモ)
HTTP(WebDav経由でもアクセス)したいので,portsから
www/apache2と,devel/subversionをインストール.
pkgtools.confのMAKE_ARGSに
'www/apache2' => 'WITH_BERKLEYDB=db4', 'devel/subversion' => 'WITH_MOD_DAV_SVN=yes',
を追加しているとportinstallでOK.
www/apache21では,portsの依存関係かなんかでコンパイルが上手くいかなかった.とりあえずapache2を使う.
httpd.confの設定
適切にWebサーバとして動作するように設定した上で,
<Location /svn> DAV svn SVNPath $SVN </Location>
を追加.この設定だと
http:サーバ/svn/
でSubversionのデータにアクセスすることができる.ただし,$SVNはsvnのルートディレクトリ.
また,portsでインストールした場合問題ないが,mod_dav,mod_dav_svnのLoadModule文がコメントアウトされていないことを一応確認しておく.
もし外に公開するようなサーバなら,ベーシック認証くらいかけておくでしょうね.
データベースの初期化
まずはデータベースの初期化.cvs initみたいな感じ.
% svnadmin create $SVN
とりあえずこれで完了.
WebDavでもアクセスしたいので,httpdのユーザであるwwwもこのフォルダへアクセスできるように変更.私の場合は,svnグループを作って,wwwユーザをこのグループに追加しg+wした.
クライアント
Unixのシェルとかでsvnコマンドを使ってアクセス可能.もちろんクライアントにはsubversionがはいっていないといけません.手でコンパイルするならneonも.
Subversionについてのメモ適当にまとめてあっていい感じ.
ただ,コマンドラインから使うのは結構簡単で,subversionに登録した後のディレクトリやファイルに関しては,svn 「コマンド」 リソース名といった感じでUnixのshellでのファイル操作と似ています.
たとえば,あらたにディレクトリを作りたかったら
% svn mkdir http://サーバ名/svn/fefe
とか.
フォルダの名前かえたくなったら,
svn mv http://サーバ名/svn/fefe http://サーバ名/svn/hoge
コピーは,
svn cp http://サーバ名/svn/hoge http://サーバ名/svn/gaso
ファイル操作をネットワーク越しでやっている感じでしょ?
ただ,新たにSubversionに登録するときは,importを使って.
svn import . http://サーバ名/svn/fefe
これでカレントディレクトリ以下のファイルが/svn/fefeの下に登録されます.
またSubversionからディレクトリなりファイルをとりだしたくなったら,
svn co http://サーバ名/svn/fefe
まぁ,この辺はcvsと同じですね.
Windowsを使う人ならTortoiseSVNとかが便利.インストールの参考ページも.まあインストーラまかせでいいんだけど.
SubversionとCVSの違いについてのまとめ
- 一番上のリンクを辿って読めば分かること.ちょっとメモ.
リビジョン
Subversionのリビジョン番号はimportしたプロジェクト単位とかではなく,subversionのルートに対して更新がかかる.いろいろやっているとびっくりするくらいリビジョンが大きくなるけど,そんなものみたい
管理単位
- CVS
あらかじめ決められた(決めておいた)プロジェクトに対してファイルを登録し処理していく
- Subversion
プロジェクト(のつもりのディレクトリ)をまたいだファイルやディレクトリ丸々の移動も可.
タグやリビジョン
- CVS
各ファイルのもっているリビジョンの組のまとめ
- Subversion
ネットワークとの関係
- CVS
CVSROOTのあるマシンにアクセスできないとファイルの更新や元に戻すという操作ができない.一部これをラップするツールもあるけど.
- Subversion
手元にコピーをもってくるので,ネットワークにつながっていなくてもリビジョンを戻したりすることができる.
Idとかのキーワードをつける
- CVS
$Id:$とかって書いておくと勝手につく.もちろん半角で.
- Subversion
% svn propset svn:keywords Id ファイル名
として,ファイル名にキーワードを関連づけておく必要がある