アットウィキロゴ
紫雪の技術メモ
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

紫雪の技術メモ

SVNの導入手順

最終更新:

siyuki

- view
メンバー限定 登録/ログイン

SVNの設定方法


1.SVNのダウンロード


http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
上記のサイトから、落としたいSVNを取得する。

普通のsvn-1.4.5-setup.exeとかでいいみたい。


2.インストール


ダウンロードしたSVNのexeを実行して、nextを押していけばインストールは終了する。
選択できる部分はインストールフォルダ程度。

一応Windows 95系のユーザは 環境変数 APR_ICONV_PATHを設定する必要がある。
SET APR_ICONV_PATH="C:\Program Files\Subversion\iconv"


3.リポジトリの作成


SVNのデータ格納領域である、リポジトリを作成する。
今回はドライブ直下に、以下の構成でフォルダを作成。
C:\svn\
この直下に、プロジェクトごとにリポジトリを用意していく形が望ましい。
今回は、「TestProject」という名前のリポジトリフォルダを作成していく例を紹介する。

コマンドライン:
svnadmin create --fs-type bdb c:/svn/TestProject/
もしくは 
svnadmin create --fs-type fsfs c:/svn/TestProject/

上記コマンドで、「TestProject」配下をリポジトリにできる。
この際のFSタイプだが、基本的にはFSFSを使用するのが良い。
ファイル制御の、従来の形式がBDB。新形式がFSFS。今後、BDBはサポートされなくなる方向なので
問題が無い限りFSFSを使っていくことをお勧めする。


作成したリポジトリにアクセスするには、

コマンドライン:
file:///c:/svn/TestProject/

のように書く。普通にコマンドラインでフォルダパスを書いても、リポジトリにアクセスすることにはならないので注意!
UNC パスで書く場合、
file://ServerName/path/to/TestProject/
のように書くことができる。


リポジトリのバックアップには、リポジトリに指定したフォルダそのものをコピペしても良いが
svnadmin hotcopy path/to/repository path/to/backup --clean-logs
上記のように書くのがより望ましい。


リポジトリ内部には、まず
trunk
tags
branches
の三つのフォルダを作成して、各種操作で切り分けるのが一般的なリポジトリ管理の方法のようだ。
svn mkdir file://localhost/c:/svn/TestProject/trunk    -m "trunkの作成"
svn mkdir file://localhost/c:/svn/TestProject/tags     -m "tagsの作成"
svn mkdir file://localhost/c:/svn/TestProject/branches -m "branchesの作成"


4.サービスの起動


ネットワークからリポジトリにアクセスする場合、SVNサーバを立てる必要がある。
自分だけで使用するので無い場合、必ず必要になるので、ほとんどの場合使われることになる。

svnserve.exe --daemon  (svnserve.exe -d  と省略可能)

上記コマンドで、サービスを実行することができる。
svnserve が起動し、ポート 3690 でリクエストを待ち受けるようになる。
サーバには、
svn://localhost/svn/TestProject/
でアクセス可能。

この際、ルートフォルダの指定もできる。
svnserve.exe --daemon --root c:\svn  (svnserve.exe -d -r c:\svn  と省略可能)
svn://localhost/TestProject/
    • root スイッチを使えば、異なったドライブや階層にも自由にアクセスできる。


svnserve をサービスとして実行!
sc create svnserve binpath= "\"C:\Program Files\Subversion\bin\svnserve.exe\"
   --service --root c:\svn" displayname= "Subversion" depend= tcpip start= auto
このように書くと、SVNサーバをWindowsのサービスとして登録できる。

サービス作成後に、説明の追加もできる。これは Windows のサービスマネージャに表示される。
sc description svnserve "Subversionサーバーです。"



5.外部接続設定


外部からの接続に対して、SVNでは認証を行うことができる。
svnserve での認証方法はいくつかパターンがあるが、ここでは最も一般的で簡単な
方法を紹介しようと思う。

リポジトリに設定したフォルダの直下に、confフォルダがある。
この中に、svnserve.conf、authz、passwdの3つのファイルがあるが、
今回編集するのはこのうち二つのみ。

まずは、svnserve.confについて。
[general]
anon-access = read
auth-access = write
password-db = passwd
などのような記述があるはず。ひとつずつ解説していこう。

anon-access・・・誰にでもつけるアクセス権限。readならチェックアウトのみ。
        writeにすれば誰でもコミット可能になるが、セキュリティ的にお勧めできない。
auth-access・・・認証を伴ったアクセス権限。通常こちらにwrite権限をつけるべき。
password-db・・・認証(ユーザーID・パスワードチェック)時に照合するファイルパスを記述する。
        相対パスによる指定が可能なので、複数のリポジトリを1ファイルで管理することも可能。

password-dbに使用するファイルは、自分で自由に名前をつけることができるが、
ここはデフォルトのpasswdファイルを使うこととする。

passwdファイル内に、「ユーザー名 = パスワード」の形式で記述すればユーザーごとの設定が可能。
[users]
username = password
testuser = testpass
...

こうしておけば、どのユーザーがコミットしたかの判別も行えるようになる。
ちなみに、上記の各種設定は必ず左詰めで書くこと。半角スペースを空けるとサーバが立ち上がらなくなる。


6.SVNクライアント


TortioseSVN(トータスSVN)のダウンロード
tortoisesvn: TortoiseSVN Downloads
http://tortoisesvn.tigris.org/download.html
メニューの日本語化のためにJapanese Language Pack も落とすべき。

インストール後はOSの再起動が必要。
一応、しなくても扱えてしまうようだが・・・。




参考サイト様


TortoiseSVN
http://tortoisesvn.net/docs/nightly/TortoiseSVN_ja/index.html
SVNクライアントである、TortoiseSVNの解説がメインのサイト様ですが、
その中でサーバとしてのSVNの説明なども詳しくされており、非常に参考になります。
ただし長いので、簡単に設置したい人には向きません。極めたい人向け。

Subversion メモ
http://www-aos.eps.s.u-tokyo.ac.jp/~takagi/SubversionMemo.html
こちらも非常に詳しくまとめられており、深く知りたい人に最適なサイト様です。

てんぷらメモ
http://terai.xrea.jp/Subversion.html
見やすく簡単にまとめられており、SVNはやったことないけど時間も無い!という人向け。


おまけ

http://gihyo.jp/dev/column/01/management/2007/0622
サーバのセッティングが完了したら、各クライアントから呼び出してみよう!
色々なツール?からSVNにアクセスする方法が紹介されています。

CVSとSVNの差異
http://www.limy.org/program/subversion.html
CVSとの変更点をまとめられており、説得材料に最適なサイト様です。





最近更新されたスレッド
ウィキ募集バナー