Windowsでsvnserveを動かす方法

デーモンとして動かす場合

ログインしてコマンドを起動する必要があります。

用意するもの

  • Subversionコマンドライン版

使い方

  1. リポジトリを作成
    svnadmin.exe create d:\svnrepo
    (「d:\svnrepo」にリポジトリを作成する場合)
     
  2. アクセス権の設定
    リポジトリフォルダにある「conf\svnserve.conf」ファイルを編集しアクセス権を設定します。
    [general]
    anon-access = write
     
  3. デーモンとして起動
    svnserve.exe -d --listen-port 3690 -r d:\svnrepo
    (「-d」オプションは必須です)
    (ポート番号3690の場合は「--listen-port」は省略できます)

サービス化する場合

「SVN Service Wrapper」を使いでサービス化することでログインせずに起動出来ます。

用意するもの

使い方

  1. 「SVN Service Wrapper for Windows」のインストール
    「SVNService.exe」をSubversionのbinフォルダにコピーします。
     
  2. リポジトリを作成
    svnadmin create d:\svnrepo
    (「d:\svnrepo」にリポジトリを作成する場合)
     
  3. アクセス権の設定
    リポジトリフォルダにある「conf\svnserve.conf」ファイルを編集しアクセス権を設定します。
    [general]
    anon-access = write
     
  4. サービスとしてインストール
    SVNService -install -d -r d:\svnrepo --listen-port 3690
    (「-d」オプションは必須です)
    (ポート番号3690の場合は「--listen-port」は省略できます)
     
  5. サービスの確認
    コントロールパネルのサービスを表示し「SVNService」が表示されていればインストール成功です。
    自動起動等にする場合はプロパティで変更します。
     
    以上で「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」にあります。

リポジトリサーバ上でコミットしたログを変更する方法

  1. 変更する新たなログメッセージをテキストファイルに作成します。
    作成するファイルの内容 例):~
    新しいログメッセージです。
    補足) そのリビジョンのログを追加でなく上書きするので、必要に応じて元の内容も書きましょう。

  2. 「svnadmin setlog」コマンドでログを変更します。
    コマンド 例)
    svnadmin setlog --bypass-hooks repository -r 10 r10_log.txt
    補足) 上記例では、repositoryフォルダにあるリポジトリのリビジョン10のログメッセージを「r10_log.txt」に書かれている内容に変更します。

クライアントからコミットしたログを変更する方法

  1. リポジトリの「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だけがログの変更が出来るようになります。

  1. 変更する新たなログメッセージをテキストファイルに作成します。
    作成するファイルの内容 例)
    新しいログメッセージです。
    補足) そのリビジョンのログを追加でなく上書きするので、必要に応じて元の内容も書きましょう。

  2. 「svn propset svn:log」コマンドでログを変更します。
    コマンド 例)
    svn propset svn:log --revprop -r 10 -F r10_log.txt svn://repo
    補足) 上記例では、svn://repoにあるリポジトリのリビジョン10のログメッセージを「r10_log.txt」に書かれている内容に変更します。

コメント


(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-07-22 (水) 15:30:01 (500d)