3

Subversion win32 サービスが実行されているのと同じコンピューターからのみ、TortoiseSVN を使用してアクセスするレポがあり、しばらくの間動作しています。mod_dav_svn をセットアップして、他の場所からアクセスできるようにすることにしました。アクセスしようとすると、ブラウザに次のエラーが表示されます。

<D:error>
<C:error/>
<m:human-readable errcode="165005">
Could not open the requested SVN filesystem
</m:human-readable>
</D:error>

...そしてログのこれらのエラー:

 (20014)Internal error: Expected repository format '3' or '5'; found format '9'
 Could not fetch resource information.  [500, #0]
 Could not open the requested SVN filesystem  [500, #165005]
 Could not open the requested SVN filesystem  [500, #165005]

これが私の.confにあるものです:

LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

DAV svn
SVNPath e:/dev/.svn

/.svn を入れたのは、それを行う前にクライアントで同じエラー テキストが表示され (コード 720002)、ログに Apache が存在しない e:/dev/format を探していることが示されたからです。 e:/dev/.svn/format です。

これを読んで、私のサブバージョンが 1.5.1 で 1.5.5 が出ていて、最近 TortoiseSVN をアップグレードしたことに気づき、互換性がないのではないかと思いました (これは意味がないかもしれません。 1.5.5 をダウンロードし、サービスを停止し、DLL と EXE をオーバートップにコピーし、サービスを再起動し、新しい .so ファイルを Apache のモジュール ディレクトリにコピーし、httpd を再起動しました。運がない。

助言がありますか?この特定の「フォーマット 9」は珍しいようです...

4

1 に答える 1

8

次の説明で我慢してください。それはあなたの問題に関する私の仮説を正当化し、SVNがどのように機能するかについていくつかの洞察を与えるでしょう:

Subversion では、ファイルを含む 2 つの場所があります: リポジトリと作業コピーです。

リポジトリには履歴が保存されます。リポジトリからチェックアウトして作業コピーを作成し、リポジトリにコミットします。

Svnervice と apache svn の両方で、リポジトリを公開できます。Tortoise では、公開されたリポジトリから作業コピーを作成できます。

あなたが投稿したことから、リポジトリではなく作業コピーを公開しようとしていると思います (「.svn」フォルダーは作業コピーの典型であり、e:\dev.svn はチェックアウト ディレクトリであると思います)。

サービス管理に移動し、svn サービスを実行するコマンド ラインを見つけます。次のような文字列が含まれている必要があります: svnserve -d -r {somepath}

{somepath} は、リポジトリへのパスです。これは、Apache の SVNPath 構成ディレクティブで指定する必要があるパスです。

最後に 1 つ: svnserve と apache svn の両方を使用して同じリポジトリへの R/W アクセスを許可しないでください。トランザクション ロックで競合状態にさらされ、リポジトリが破損する可能性があります。

于 2009-02-17T17:07:15.167 に答える