トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

Subversion

[コンピュータ関連Tips]

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 ファイル名

として,ファイル名にキーワードを関連づけておく必要がある