*Windowsでsvnserveを動かす方法
**デーモンとして動かす場合
ログインしてコマンドを起動する必要があります。
**用意するもの
-Subversionコマンドライン版
***使い方
+リポジトリを作成~
svnadmin.exe create d:\svnrepo
(「d:\svnrepo」にリポジトリを作成する場合)
#BR
+アクセス権の設定~
リポジトリフォルダにある「conf\svnserve.conf」ファイルを編集しアクセス権を設定します。
[general]
anon-access = write
#BR
+デーモンとして起動
svnserve.exe -d --listen-port 3690 -r d:\svnrepo
(「-d」オプションは必須です)
(ポート番号3690の場合は「--listen-port」は省略できます)
**サービス化する場合
「SVN Service Wrapper」を使いでサービス化することでログインせずに起動出来ます。
***用意するもの
-Subversionコマンドライン版
-SVN Service Wrapper for Windows~
http://www.clanlib.org/~mbn/svnservice/ ~
(サービスとして動かす場合に必要です)
***使い方
+「SVN Service Wrapper for Windows」のインストール~
「SVNService.exe」をSubversionのbinフォルダにコピーします。~
#BR
+リポジトリを作成~
svnadmin create d:\svnrepo
(「d:\svnrepo」にリポジトリを作成する場合)
#BR
+アクセス権の設定~
リポジトリフォルダにある「conf\svnserve.conf」ファイルを編集しアクセス権を設定します。
[general]
anon-access = write
#BR
+サービスとしてインストール~
SVNService -install -d -r d:\svnrepo --listen-port 3690
(「-d」オプションは必須です)
(ポート番号3690の場合は「--listen-port」は省略できます)
#BR
+サービスの確認~
コントロールパネルのサービスを表示し「SVNService」が表示されていればインストール成功です。~
自動起動等にする場合はプロパティで変更します。~
#BR
以上で「svn://ホスト名/」で「d:\svnrepo/」のリポジトリにアクセスできます。
*svn.exeとTortoiseSVNを共存させる方法
-概要~
svn.exeとTortoiseSVNでは、文字コード変換に利用するiconvライブラリが別にインストールされるため、svn.exeで日本語が扱えなくなることがあります。~
-対策~
コマンドプロンプト実行時は、iconvライブラリのパスを強制的にsvn.exe用にする。~
--「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor」の「AutoRun」に以下の値を設定する。
set APR_ICONV_PATH=<svn.exeをインストールしたパス>\iconv
~
例) svn.exeを"C:\Program Files\Subversion"へインストールした場合~
set APR_ICONV_PATH=C:\Program Files\Subversion\iconv
注意) 上記場合は、svn.exeは、「C:\Program Files\Subversion\bin」にあります。~
*リポジトリサーバ上でコミットしたログを変更する方法
+変更する新たなログメッセージをテキストファイルに作成します。~
作成するファイルの内容 例):~
新しいログメッセージです。
補足) そのリビジョンのログを追加でなく上書きするので、必要に応じて元の内容も書きましょう。~
~
+「svnadmin setlog」コマンドでログを変更します。~
コマンド 例)~
svnadmin setlog --bypass-hooks repository -r 10 r10_log.txt
補足) 上記例では、repositoryフォルダにあるリポジトリのリビジョン10のログメッセージを「r10_log.txt」に書かれている内容に変更します。~
*クライアントからコミットしたログを変更する方法
+リポジトリの「hooks」フォルダに「pre-revprop-change.bat」を作成し、特定ユーザでのログの変更を許可します。~
「pre-revprop-change.bat」の内容 例)~
rem [1] REPOS-PATH (the path to this repository)
rem [2] REVISION (the revision being tweaked)
rem [3] USER (the username of the person tweaking the property)
rem [4] PROPNAME (the property being set on the revision)
rem [STDIN] PROPVAL ** the property value is passed via STDIN.
if "%4"=="svn:log" (
if "%3"=="HOGEHOGE" (
exit 0
)
)
exit 1
補足) 上記例では、ユーザHOGEHOGEだけがログの変更が出来るようになります。~
~
+変更する新たなログメッセージをテキストファイルに作成します。~
作成するファイルの内容 例)~
新しいログメッセージです。
補足) そのリビジョンのログを追加でなく上書きするので、必要に応じて元の内容も書きましょう。~
~
+「svn propset svn:log」コマンドでログを変更します。~
コマンド 例)~
svn propset svn:log --revprop -r 10 -F r10_log.txt svn://repo
補足) 上記例では、svn://repoにあるリポジトリのリビジョン10のログメッセージを「r10_log.txt」に書かれている内容に変更します。~
~
*コメント
#comment