今までは開発機(Windows)に TortoiseSVNを入れて、リポジトリもローカルに作っていたのだけど、ネットワーク越しにも使おうと思い立って Slackware機でサーバを動かして Windows機はクライアントに徹するように作業した時のメモ。
リポジトリを作成。(Slackware)
2774-0.log# svnadmin create /home/svn/a --fs-type fsfs
認証の設定。(Slackware)
2774-1.log# vi /home/svn/a/conf/svnserve.conf
[general]
anon-access = read
auth-access = write
password-db = passwd
# vi /home/svn/a/conf/passwd
userX=passwordX
デーモンの起動。(Slackware)
2774-2.log# svnserve -d
作業コピーの作成(チェックアウト)。(Windows/TortoiseSVN)
適当なディレクトリを掘って、コンテキストメニューから「SVN チェックアウト」を選択し、サーバに「svn://localhost:13690/home/svn/a」と。*1
「.svn」という管理データの含まれるディレクトリが出来上がると。
コミット。(Windows/TortoiseSVN)
チェックアウトしたディレクトリへ管理対象となるファイルをつっこみ、「TortoiseSVN – 追加」を行う。*2
一通り追加したら「SVN – コミット」を選択し、コメントの入力とコミットされるファイル一覧をチェック。
ユーザー名とパスワードを入力するとコミットが始まる。
後は適当なタイミングで変更をコミットしてゆくと。
別 PCで編集する場合は適当なディレクトリでチェックアウトを行い、任意にコミットを繰り返す。
チェックアウト済みのディレクトリを最新のバージョンに更新するにはコンテキストメニューから「SVN 更新」を行う。
コマンドラインからのチェックアウト(Slackware)
2774-3.log$svn checkout svn://localhost/home/svn/a/ a/
TortoiseSVNでローカルに保持していたリポジトリを Slackware機に移動
TortoiseSVNのインストーラを起動してコマンドラインツールをインストールするように変更。
コマンドラインから現在のリポジトリデータをダンプ。
2774-4.log> svnadmin dump "C:\Documents and Settings\USER\Local Settings\Application Data\subversion\Repository" >repo.dump
コマンドライからリポジトリデータをロード。
2774-5.log# svnadmin create /home/svn/repositories/project
# svnadmin load /home/svn/repositories/project < repo.dump
svnserveによるルート指定
前述の svnserve起動方法ではファイルシステム上のパスをそのまま外部に見せていたけれど、それでは不都合がある時がある…かもしれない。
そんなときは以下のように起動すると外部からの「svn://server/a/」というアクセスが未指定時の「svn://server/home/svn/a」と同じなる…と言うことだと思う。
2774-6.log#svnserve -d -r /home/svn/