Đưa ra một cấu hình Subversion / Apache điển hình bằng SVNParentPath, với các kho lưu trữ được lưu trữ /svn/
như thế này:
<Location /svn>
DAV svn
SVNParentPath /srv/source/svn/repos
SVNReposName "Subversion Repository"
AuthzSVNAccessFile /srv/source/svn/authz
Satisfy Any
AuthType Basic
AuthBasicProvider file
AuthName "Subversion Repository"
AuthUserFile /srv/source/svn/htpasswd
Require valid-user
</Location>
Có cách nào để ghi đè cấu hình này cho các kho lưu trữ cụ thể mà không phải lưu trữ chúng ở một đường dẫn khác không? Đó là, có cách nào tôi có thể thêm một Location
khối như thế này ...
<Location /svn/my_special_repo>
SVNPath /srv/source/svn/repos/my_special_repo
AuthzSVNAccessFile /srv/source/svn/repos/my_special_repo/conf/authz
</Location>
... và có ghi đè cấu hình được cung cấp trong
Location
khối /svn
không? Những nỗ lực của tôi trong việc thực hiện điều này với cấu hình trên đã gặp phải các lỗi lạ và không có ích trong nhật ký lỗi Apache, chẳng hạn như:
[Wed Feb 02 11:28:35 2011] [error] [client 10.10.209.120]
(20014)Internal error: Can't open file '/srv/source/svn/repos/svn/format':
No such file or directory
Tất cả điều này dường như là cách của mod_dav_svn nói với tôi rằng tôi không thể làm những gì tôi đang cố gắng làm. Tôi đang mở cho các giải pháp hoặc giải pháp thay thế!
EDIT : Vâng, tôi có thể thấy rằng câu hỏi này đã tạo ra rất nhiều hứng thú trong số các độc giả. Đối với bản ghi, những gì tôi có thể sẽ làm là tạo cấu hình cho mỗi kho lưu trữ cho tất cả các kho lưu trữ hiện có của chúng tôi và sau đó từ bỏ SVNParentPath
cấu hình dựa trên. Cấu hình Apache trên mỗi repo là tối thiểu, đặc biệt là sử dụng cái gì đó như mod_macro ; phần cứng sẽ được tách ra khỏi tập tin authz toàn cầu. Nếu bạn đã làm điều này trước đây, lời khuyên được đánh giá cao.