[[FrontPage]] **Subversionのインストール [#j858690d] WindowsにSubversionをインストールするには、[[Subversionのサイト:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91]]からsvn-win32-1.2.x.zipをダウンロード、解凍して適当な場所に起きます。マイコンピュータを右クリックし、プロパティを選択、「詳細」タブの環境変数をクリックし、PATHにインストールした場所を追加します。 **リポジトリ初期化 [#wfdf08b6] subversionを利用するには、まずリポジトリを作成する必要があります。リポジトリを作成するには、svnadminを利用します。 > svnadmin create C:\repositry **ユーザ設定 [#k3f6626b] リポジトリを作成したらユーザ設定を行います。ユーザ設定は、リポジトリを作成したディレクトリの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 上記のように <ユーザ名> = <パスワード> と記述します。 **サーバ起動 [#ca11ff91] # svnserve -d -r /home/svn /home/svn/conf/password [users] light=dark nia=justice **インポート [#zd6ae109] 例えばbookstoreディレクトリ以下をインポートするには、次のようにします。 $ svn import bookstore file:///c:/repositry -m "initial imported." file://プロトコルを利用するとサーバを起動する必要はありません。サーバを起動している場合は、次のようにします。 $ svn import bookstore svn://localhost -m "initial imported." **コマンド一覧 [#bda1e87e] |BGCOLOR(pink):コマンド名|BGCOLOR(pink):機能| |checkout|リポジトリからファイルを取り出す| |commit|ローカルファイルの変更をリポジトリに反映| |update|最新の状態にローカルのファイルを更新| |add*|ファイルを追加| |rename*|ファイル名を変更| |delete*|ファイルを削除| |log|コミットログを表示| |list|リポジトリのリストを表示| -*がついたものは、commitを実行して初めてリポジトリに実行内容が反映される。 *Hookによる処理 [#da2ac496] 下記のリポジトリに色々なフックスクリプトがある。 -http://svn.collab.net/viewcvs/svn/trunk/contrib/hook-scripts/ **コミットメッセージをE-MAILで送信 [#j931db66] http://docs.codehaus.org/display/HAUS/How+to+Send+Subversion+Commit+Logs+to+Email **コミットメッセージのバリデーション [#h5f9b0e9] Subversionを利用していると、コミットメッセージを空にしてメッセージをコミットする輩が後を断たない。コミットメッセージが空だと、後でコミット内容をトレースするときに大変不便である。そこで、メッセージが空の場合、コミットできないようにする。 -参考URL: http://www.powertrip.co.za/blog/archives/000387.html **タグをread onlyにする [#t6d19d12] Subversionのタグは単なるリポジトリの中のコピーに過ぎないため、タグを付けた後もタグ付けされたコンテンツの内容を変更できてしまう。そこで、tags/x.xという名前のディレクトリ内に生成されたコンテンツは一度生成されると、コミット不可能にする必要がある。 - 参考URL: http://svn.haxx.se/users/archive-2005-11/0056.shtml **Apache2+WebDAV [#sd36647d] /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> *その他 [#sb46d646] **proxyの利用 [#i2aff3eb] 会社からリポジトリに繋ぐ際にファイアウォールなどで邪魔されて、うまく接続できない場合がある。proxyを利用する場合は、HOME/.subversion/serversに次のような設定を記述する。 http-proxy-host = proxy.example.com http-proxy-port = 8080 http-proxy-username = tora http-proxy-password = <プロキシ認証のパスワード> *Subversive [#p17f578e] 鈴木八重さんの記事:http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn15/eclipseplgn15_1.html *Subclipse [#cfc85b9d] EclipseからSubversionを使うためのプラグイン **コミットログテンプレート [#s1289e2f] プロジェクトによって、コミットログに、バグ番号やコードのレビュー者、試験番号などを記述するようにした方が、プロジェクト管理の点から便利なことがある。ここで、コミットログのテンプレートを定義しておくと便利である。 プロジェクトルートのtsvn:logtemplateプロパティにテンプレートを設定しておくと、コミット時にそのテンプレートが表示されるようになる。 プロジェクトルートのtsvn:logtemplateプロパティにテンプレートを設定しておくと、コミット時にそのテンプレートが表示されるようになる[[。:http://k-tuma.purecafe.info/]] **FAQ [#d10ebd56] -Q:ApacheのWEBDAV経由で、BASIC認証が行われずリポジトリが直接見えてしまいます。 -A:ウィンドウ→設定→チーム→SVNでJavaSVNを利用するように設定してください。 -Q:ロックといっても、他のユーザが読めて編集できてしまいますが... -A:SubversionのロックはVSSと異なり、書き込みをロックします。そのため、他のユーザがソースコードを取得、編集することができます。 -Q:$Id: $を利用すると日付が文字化けします。 -Q:$Id: $を利用すると日付が文字化けします[[。:http://ka-sex.aet7osdfyik.com/]] -A:JavaHLを使えば文字化けはなくなります。 *TODO [#pcf33c7d] -JNI経由のメッセージが文字化けする([[このパッチ:http://subversion.tigris.org/issues/show_bug.cgi?id=2495]]をSubversionに適用) -パッチ作成がうまくできない(絶対パスになる)[[。:http://ka-deaib.aet7osdfyik.com/]] -ワークスペース上からファイルを削除し、同じファイル名を作成するとコミットできなくなる?(要確認) *リンク [#tb7f8e7d] - Subversion Best Practice http://bradchoate.com/weblog/2006/07/27/oscon-subversion-best-practices - 鈴木八重さんの記事 http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn15/eclipseplgn15_1.html