FrontPage

Subversionのインストール

WindowsにSubversionをインストールするには、Subversionのサイトからsvn-win32-1.2.x.zipをダウンロード、解凍して適当な場所に起きます。マイコンピュータを右クリックし、プロパティを選択、「詳細」タブの環境変数をクリックし、PATHにインストールした場所を追加します。

リポジトリ初期化

subversionを利用するには、まずリポジトリを作成する必要があります。リポジトリを作成するには、svnadminを利用します。

> svnadmin create C:\repositry

ユーザ設定

リポジトリを作成したらユーザ設定を行います。ユーザ設定は、リポジトリを作成したディレクトリのconf\svnserve.confにあります(上記の例ではC:\repositry\conf\svnservre.conf)。svnservre.confは設定がコメントアウトされているので、適当にコメントを外して設定します。

[general]
anon-access = read
auth-access = write
password-db = passwd

上記の設定では、匿名ユーザに対しては読み込みのみを、認証されたユーザには読み込みと書き込みを許可しています。また、認証されたユーザは、password-dbに設定されてpasswdファイルに定義します。password-dbには絶対パスを書くこともできます。相対バスで書くとリポジトリのconfディレクトリからのパスとなります(上記の例では、C:\repositry\conf\passwdとなる)。passwdファイルは次のように記述します。

[users]
tidus = password1
aron = password2

上記のように

<ユーザ名> = <パスワード>

と記述します。

サーバ起動

# svnserve -d -r /home/svn

/home/svn/conf/password

[users]
light=dark
nia=justice

インポート

例えばbookstoreディレクトリ以下をインポートするには、次のようにします。

$ svn import bookstore file:///c:/repositry -m "initial imported."

file://プロトコルを利用するとサーバを起動する必要はありません。サーバを起動している場合は、次のようにします。 $ svn import bookstore svn://localhost -m "initial imported."

コマンド一覧

コマンド名機能
checkoutリポジトリからファイルを取り出す
commitローカルファイルの変更をリポジトリに反映
update最新の状態にローカルのファイルを更新
add*ファイルを追加
rename*ファイル名を変更
delete*ファイルを削除
logコミットログを表示
listリポジトリのリストを表示
  • *がついたものは、commitを実行して初めてリポジトリに実行内容が反映される。

Hookによる処理

下記のリポジトリに色々なフックスクリプトがある。

コミットメッセージをE-MAILで送信

http://docs.codehaus.org/display/HAUS/How+to+Send+Subversion+Commit+Logs+to+Email

コミットメッセージのバリデーション

Subversionを利用していると、コミットメッセージを空にしてメッセージをコミットする輩が後を断たない。コミットメッセージが空だと、後でコミット内容をトレースするときに大変不便である。そこで、メッセージが空の場合、コミットできないようにする。

タグをread onlyにする

Subversionのタグは単なるリポジトリの中のコピーに過ぎないため、タグを付けた後もタグ付けされたコンテンツの内容を変更できてしまう。そこで、tags/x.xという名前のディレクトリ内に生成されたコンテンツは一度生成されると、コミット不可能にする必要がある。

Apache2+WebDAV

/etc/apache2/mods-enabled

dav.load
dav_fs.conf
dav_fs.load
dav_svn.conf
dav_svn.load
<Location "/svn">
       DAV svn
       SVNPath /home/svn
</Location>

その他

proxyの利用

会社からリポジトリに繋ぐ際にファイアウォールなどで邪魔されて、うまく接続できない場合がある。proxyを利用する場合は、HOME/.subversion/serversに次のような設定を記述する。

http-proxy-host = proxy.example.com
http-proxy-port = 8080
http-proxy-username = tora
http-proxy-password = <プロキシ認証のパスワード>

Subversive

鈴木八重さんの記事:http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn15/eclipseplgn15_1.html

Subclipse

EclipseからSubversionを使うためのプラグイン

コミットログテンプレート

プロジェクトによって、コミットログに、バグ番号やコードのレビュー者、試験番号などを記述するようにした方が、プロジェクト管理の点から便利なことがある。ここで、コミットログのテンプレートを定義しておくと便利である。

プロジェクトルートのtsvn:logtemplateプロパティにテンプレートを設定しておくと、コミット時にそのテンプレートが表示されるようになる

FAQ

  • Q:ApacheのWEBDAV経由で、BASIC認証が行われずリポジトリが直接見えてしまいます。
  • A:ウィンドウ→設定→チーム→SVNでJavaSVNを利用するように設定してください。
  • Q:ロックといっても、他のユーザが読めて編集できてしまいますが...
  • A:SubversionのロックはVSSと異なり、書き込みをロックします。そのため、他のユーザがソースコードを取得、編集することができます。
  • Q:$Id: $を利用すると日付が文字化けします
  • A:JavaHLを使えば文字化けはなくなります。

TODO

  • JNI経由のメッセージが文字化けする(このパッチをSubversionに適用)
  • パッチ作成がうまくできない(絶対パスになる)
  • ワークスペース上からファイルを削除し、同じファイル名を作成するとコミットできなくなる?(要確認)

リンク


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-10-19 (火) 21:21:36 (5029d)