2009-05-26 45 views
21

Tôi đã kiểm tra một kho lưu trữ (nói foo) từ SVN trong khi thực hiện một số cam kết/cập nhật khác. Máy chủ của tôi đã chết và tôi bị bỏ lại với một khoản thanh toán chưa hoàn chỉnh. Khỏe. Vấn đề là khi tôi quay trở lại để truy cập kho lưu trữ foo, nhưng tôi không thể. Nó cứ treo mãi mãi.SVN "Yêu cầu PROPFIND không thành công ..."

Vì vậy, tôi đã truy cập http://subversion.apache.org/faq.html#bdb-recovery và chạy svnadmin recover. Tôi đã nhận được một lỗi, vì vậy tôi đã phải sử dụng db_recover và lệnh cho biết nó đã hoàn thành thành công.

Bây giờ khi tôi cố gắng truy cập vào kho lưu trữ, tôi nhận được:

svn: PROPFIND request failed on '/foo' 
svn: PROPFIND of '/foo': 500 Internal Server Error (https://svn.foobar.com) 

Ngoài ra, nếu tôi hướng đến https://svn.foobar.com/foo tôi thấy:

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

Bất cứ ai có bất kỳ suy nghĩ?

Lưu ý: Tất cả các kho lưu trữ khác đều hoạt động. Nó chỉ là cái này.

+0

Lỗi do svnadmin khôi phục là gì? – thekbb

Trả lời

3

Bạn có chạy 'svnadmin recovery' vì người dùng thường sử dụng kho lưu trữ (ví dụ: tài khoản apache) không?

Nếu không phải lý do có thể là một số tệp hiện đang thuộc sở hữu của người dùng đang chạy 'svnadmin recovery', hãy thoát khỏi tài khoản apache mà không có quyền thay đổi tệp kho.

+1

Trong trường hợp này đơn giản chown apache.apache -R/path/to/repos nên khắc phục sự cố ... – stephendl

1

tôi đã nhận lỗi PROPFIND này vì sức mạnh đi ra ngoài và tôi đã quên khởi động lại svnserve và trường hợp Apache =)

0

Trong trường hợp của tôi, tôi cần một giao thức khác nhau:

svn co svn+ssh://svn.xyz.com/directory 
0

Nếu thông báo lỗi cụ thể là "kết thúc của tập tin permature" ... httpd's error_log cho thấy:

[error] PHP Parse error: syntax error, unexpected T_STRING in /var/www/repos/... 

nhưng không có lỗi cú pháp.

Nó có vẻ như các file .php được giải thích thay vì được coi là văn bản - rõ ràng liên quan đến cấu hình loại MIME ...

Vâng, câu trả lời rất đơn giản:

AddType text/plain .php 

Chỉ cần thêm rằng để tệp cấu hình máy chủ ảo và apache2 của bạn sẽ ngừng giải thích PHP trong kho lưu trữ đó. Source

1

Nếu bạn là người thiết lập máy chủ SVN qua HTTP (S), đây có thể là máy chủ Apache nói rằng nó không hiểu PROPFIND.

Trong trường hợp của tôi đã xảy ra điều này khi tôi thiết lập một 'Vị trí' trong config Apache HTTPD w/o xác định nó là WebDAV thực hiện SVN (mod SVN là một phần mở rộng trên WebDAV):

<Location /svn> 
     SVNParentPath /data/scm/repositories/ 
     SVNPathAuthz off 
     AuthType Basic 
     AuthName "xxxxx" 
     AuthBasicProvider ldap 
     AuthLDAPURL ldap://xxx.yy:389/DC=aaaa,DC=bbbb?sAMAccountName?sub 
     Require valid-user 
    </Location> 

Thay vì điều này:

<Location /svn> 
    DAV svn 
    SVNParentPath /data/scm/repositories/ 
    SVNPathAuthz off 
    AuthType Basic 
    AuthName "xxxxx" 
    AuthBasicProvider ldap 
    AuthLDAPURL ldap://xxx.yy:389/DC=aaaa,DC=bbbb?sAMAccountName?sub 
    Require valid-user 
</Location> 

Có vẻ là một sai lầm hợp lý sau khi tôi tìm thấy nó, nhưng đã dành cho tôi khá nhiều thời gian để tìm ra lỗi ...

1

Đôi khi các phiên bản Java khác nhau được cài đặt có thể làm cho plugin Eclipse SVN (trường hợp của tôi Subversive 1.7) không hoạt động.

Tôi đã sử dụng JVM 1.6, nhưng đường dẫn môi trường của tôi đã trỏ đến một phiên bản mới hơn (do cài đặt Oracle Java web start hoặc một cái gì đó).

Vì vậy, tôi đã sửa lại phiên bản Java 1.6 cũ và đã hoạt động.

0

Trong trường hợp của tôi, tôi có thể giải quyết thay đổi giá trị "cam kết" từ "https://localserver/svn/project" thành "tệp: /// F:/Repositories/project".

Nó bắt đầu thất bại sau khi thay đổi cổng HTTPS, bởi vì tôi đã cài đặt chứng chỉ trong localhost IIS của mình và nó xung đột với máy chủ SVN Apache.

Các vấn đề liên quan