Windowsでsvnserveを動かす方法
デーモンとして動かす場合
ログインしてコマンドを起動する必要があります。
用意するもの
使い方
- リポジトリを作成
svnadmin.exe create d:\svnrepo
(「d:\svnrepo」にリポジトリを作成する場合)
- アクセス権の設定
リポジトリフォルダにある「conf\svnserve.conf」ファイルを編集しアクセス権を設定します。
[general]
anon-access = write
- デーモンとして起動
svnserve.exe -d --listen-port 3690 -r d:\svnrepo
(「-d」オプションは必須です)
(ポート番号3690の場合は「--listen-port」は省略できます)
サービス化する場合
「SVN Service Wrapper」を使いでサービス化することでログインせずに起動出来ます。
用意するもの
使い方
- 「SVN Service Wrapper for Windows」のインストール
「SVNService.exe」をSubversionのbinフォルダにコピーします。
- リポジトリを作成
svnadmin create d:\svnrepo
(「d:\svnrepo」にリポジトリを作成する場合)
- アクセス権の設定
リポジトリフォルダにある「conf\svnserve.conf」ファイルを編集しアクセス権を設定します。
[general]
anon-access = write
- サービスとしてインストール
SVNService -install -d -r d:\svnrepo --listen-port 3690
(「-d」オプションは必須です)
(ポート番号3690の場合は「--listen-port」は省略できます)
- サービスの確認
コントロールパネルのサービスを表示し「SVNService」が表示されていればインストール成功です。
自動起動等にする場合はプロパティで変更します。
以上で「svn://ホスト名/」で「d:\svnrepo/」のリポジトリにアクセスできます。
svn.exeとTortoiseSVNを共存させる方法
- 概要
svn.exeとTortoiseSVNでは、文字コード変換に利用するiconvライブラリが別にインストールされるため、svn.exeで日本語が扱えなくなることがあります。
- 対策
コマンドプロンプト実行時は、iconvライブラリのパスを強制的にsvn.exe用にする。
リポジトリサーバ上でコミットしたログを変更する方法
- 変更する新たなログメッセージをテキストファイルに作成します。
作成するファイルの内容 例):~
新しいログメッセージです。
補足) そのリビジョンのログを追加でなく上書きするので、必要に応じて元の内容も書きましょう。
- 「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」に書かれている内容に変更します。
コメント