{{category コンピュータ関連Tips}} !subversionについて [鵜飼さんのLinuxWorldExpo/Tokyo2003でのSubversionについてのプレゼン資料|http://ukai.jp/Slides/2003/0521-lw2003/html/index.html] [Subversionによるバージョン管理|http://subversion.bluegate.org/doc/book.html] 特に後者の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サーバとして動作するように設定した上で, DAV svn SVNPath $SVN を追加.この設定だと 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 ファイル名 として,ファイル名にキーワードを関連づけておく必要がある