そのため、私はしばらくの間 SVN over HTTP (Apache および WebDav) を使用しており、最新の ArchLinux を実行している Raspberry Pi で apache を捨てて svnserve に置き換えたいと考えています。
svnserve サービスを有効にすることから始めました。
systemctl enable svnserve
次に、必要な引数を構成ファイルのコマンドに追加しました。その下/etc/config.d/svnserve
には、次のものが含まれています
SVNSERVE_ARGS="-r /media/USB/repositories --config-file /media/USB/svnserve.conf"
SVNSERVE_USER="svn"
レコードは、常にプラグインされている NTFS ストレージ デバイス/media/USB
のマウントです。/dev/sda1
私は約 70 のリポジトリを持っているので、conf/
それぞれのリポジトリ内のディレクトリを使用してアクセスを制御するのは面倒です。私が理解したことから、Apache の DAV で行っていたのと同じことを行うことができ、1 つの構成ファイルでそれらすべてを制御できます。 !
だから私は以下の3つのファイルすべてを /media/USB の下に置きます:
svnserve.conf
[general]
anon-access = none
auth-access = write
authz-db = subversion.authz
password-db = subversion.passwd
realm = Subversion
subversion.authz
[/]
* = r
dany = rw
subversion.passwd
dany = some password hash
svn://TheCorrectIp/RepoName
TortoiseSVN を使用し
て URL をチェックアウトすると、次のエラーが表示Error: No access allowed to this repository
されます。ユーザーとパスの組み合わせを入力するプロンプトさえ表示されません。
これは私がこれまでに試したことです(各試行の後にサービスを再起動します):
- TortoiseSVN のパスワード キャッシュをクリアする
- リポジトリのディレクトリの下にある 3 つの構成ファイルすべてをコピーします
conf/
(これがパスの問題であるかどうかを確認するため)。 - authz-dbで絶対パスと相対パスを使用します (ドキュメントに示されているように、リポジトリの conf からの相対パス、および svnserve.conf ファイルからの相対パス)。
- 新しいリポジトリを作成し、その conf ディレクトリだけで遊ぶ
svnserve.conf をいじっていると、奇妙なことが起こっていることに気付きました。
- authz-db と password-db をコメントアウトしても、同じ問題が発生します
- anon-access を読み取りまたは書き込みに変更し、他のすべてをコメントアウトすると、リポジトリをチェックアウトでき、組み合わせを求められることはありません。anon-accessをそのままにして、authz-dbまたはpassword-dbのいずれかを元に戻すと、再度チェックアウトできなくなります
- サービスを停止し
svnserve -d --forground -r /media/USB/repositories --config-file /media/USB/svnserve.conf
、チェックアウトの実行中にコンソール出力を監視するために実行しました: チェックアウトを実行してもコンソールに何も表示されません。
私が間違っているかもしれないことへのフィードバックを本当に感謝します、ありがとう!