連絡先 トップに戻る 最初に戻る 前に戻る 次へ進む
$Date: 2017-05-06 22:21:48 +0900 (2017/05/06 (土)) $
$Revision: 1117 $

複数のRA Layer のサポート (VC6)

この情報は古いです

概要

r25390 以降の Subversion では同じスキーマに対して複数の RA Layer がサポート されます。(ra_neon と ra_serf を同時にサポートする。)

以下の手順を既に行っていることを前提としています。

  1. ra_serf を有効にしてコンパイルする (VC6)

下準備

以下のような感じでファイルを置くとして以後の説明をする。
│
├─common
│   │
│   ├─db4-win32
│   ├─serf ← serf の trunk ディレクトリに対応する
│   │   │
│   │   ├─serf.h
│   │   ├─(serf.dsp) ← gen-make.py を実行すると作成される。
│   │   │   ...
│   │   └─README
│   │
│   ├─neon
│   ├─openssl-0.9.8d
│   ├─httpd-2.2.3
│   └─zlib-1.2.3
│
└─trunk (subversion のソースコード)
      │
      ├─INSTALL
      │  ... (中略) ...
      └─gen-make.py

Subversion のコンパイル

プロジェクトファイルの作成

以下のコマンドを subversion のソースコードのルートで実行する。 (見やすくするため改行していますが、実際には1行で入力します。)
D:\svnwork\subversion\serf> python gen-make.py -t dsp
	--with-serf=..\common\serf
	--with-neon=..\common\neon
	--with-berkeley-db=..\common\db4-win32
	--with-zlib=..\common\zlib-1.2.3 
	--with-httpd=..\common\httpd-2.2.3
--with-neon と --with-serf を両方指定します。

Subversionのコンパイル

subversion_msvc.dsw を VC6 で開いて __ALL__ または __ALL__TESTS__ の 構成を選択してビルド(F7)を実行する。

svn コマンドの実行確認

以下のような構成でファイルをコピーする。

gen-make.py を実行するときに --disable-shared を指定しなかった場合

│
├─libapr-1.dll ( APR 0.9.x の場合 libapr.dll)
├─libapriconv-1.dll (同様に libapriconv.dll )
├─libaprutil-1.dll  (同様に libaprutil.dll )
├─libdb44.dll
├─libsvn_client-1.dll
├─libsvn_delta-1.dll
├─libsvn_diff-1.dll
├─libsvn_fs-1.dll
├─libsvn_ra-1.dll
├─libsvn_repos-1.dll
├─libsvn_subr-1.dll
├─libsvn_wc-1.dll
├─svn.exe
├─svnadmin.exe
├─svndumpfilter.exe
├─svnlook.exe
├─svnserve.exe
├─svnsync.exe
└─svnversion.exe

動作確認

svn.exe を実行して以下の出力が出ることを確認する。 複数のRA Layer サポートに伴って、ra_dav から ra_neon に名前変更されました。
D:\svnwork\subversion\serf>svn --version
svn, バージョン 1.5.0 (dev build)
   コンパイル日時: Jun 19 2007, 07:12:02

Copyright (C) 2000-2007 CollabNet.
Subversion はオープンソースソフトウェアです。
http://subversion.tigris.org/ を参照してください。
この製品には、CollabNet (http://www.Collab.Net/) によって開発されたソフトウェア
が含まれています。

以下のリポジトリアクセス (RA) モジュールが利用できます:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - 'http' スキームを操作します
  - 'https' スキームを操作します
* ra_svn : svn ネットワークプロトコルを使ってリポジトリにアクセスするモジュール。
  - 'svn' スキームを操作します
* ra_local : ローカルディスク上のリポジトリにアクセスするモジュール。
  - 'file' スキームを操作します
* ra_serf : WebDAV プロトコルを使い serf でリポジトリにアクセスします。
  - 'http' スキームを操作します
  - 'https' スキームを操作します

ra_serf を有効化する方法

ra_neon と ra_serf の両方を有効にしてコンパイルすると デフォルトでは ra_neon が使用されるため、ra_serf は 使用されません。 使用するためには設定ファイルで指定する必要があります。

設定方法

servers ファイルの global のセクションに http-library = serf を追加します。

Windows XP の場合

C:\Documents and Settings\user\Application Data\Subversion\servers
強調表示しているのは、CSIDL_APPDATA のディレクトリです。

Unix系の場合

~/.subversion/servers

参照 http://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_ra_serf/README