Lỗi lật đổ: Kho lưu trữ di chuyển vĩnh viễn để vui lòng di dời


23

Tôi đã thiết lập lật đổ và apache trên máy chủ của mình.

Nếu tôi duyệt đến nó thông qua webbrowser của tôi, nó hoạt động tốt ( http://svn.host.com/reposename ). Tuy nhiên, nếu tôi thực hiện kiểm tra trên máy của mình, tôi sẽ gặp lỗi sau:

Command: Checkout from http://svn.host.com/reposname, revision HEAD, Fully recursive, Externals included  
Error: Repository moved permanently to 'http://svn.host.com/reposname/'; please relocate  

Tôi đã kiểm tra nhật ký lỗi của apache, nhưng nó không nói gì cả. (hiện tại - xem chỉnh sửa)

Kho của tôi được lưu trữ dưới: / var / www / svn / repos /

Trang web của tôi được lưu trữ dưới: / var / www / vhosts / x / ...

Đây là tập tin conf cho tên miền phụ:

<Location />
   DAV svn
   SVNParentPath /var/www/svn/repos/

   AuthType Basic
   AuthName "Authorization Realm"
   AuthUserFile /var/www/svn/auth/svn.htpasswd
   Require valid-user
</Location>

Xác thực hoạt động tốt.

Có ai biết những gì có thể gây ra điều này?

-- Chỉnh sửa

Vì vậy, tôi đã khởi động lại apache (một lần nữa) và thử lại và bây giờ nó cho tôi một thông báo lỗi, nhưng nó không thực sự hữu ích. Bất cứ ai cũng có một ý tưởng nó có nghĩa là gì?

[Wed Mar 31 23:41:55 2010] [error] [client my.ip.he.re] Could not fetch resource information.  [403, #0]
[Wed Mar 31 23:41:55 2010] [error] [client my.ip.he.re] (2)No such file or directory: The URI does not contain the name of a repository.  [403, #190001]

- Chỉnh sửa 2

Nếu tôi làm điều svn infođó sẽ không cung cấp bất cứ điều gì hữu ích:

[root@server domain.com]# svn info http://svn.domain.com/repos/
Username: username
Password for 'username':
svn: Repository moved permanently to 'http://svn.domain.com/repos/'; please relocate

Tôi cũng đã thử thực hiện kiểm tra cục bộ ( svn checkout file:///var/www/svn/repos/reposname) và nó hoạt động tốt (cũng thêm / cam kết hoạt động tốt). Vì vậy, nó dường như có một cái gì đó để làm với apache.

Một số thông tin khác:

  • Tôi đang chạy CentO 5.3
  • Plesk 9.3
  • Lật đổ, phiên bản 1.6.9 (r901367)

- Chỉnh sửa 3

Tôi đã thử di chuyển các kho lưu trữ, nhưng nó không tạo ra sự khác biệt nào.

Selinux bị vô hiệu hóa nên cũng không phải vậy.


1
Tại sao bạn Options +indexeskhông thực sự làm bất cứ điều gì hữu ích trong một vị trí svn.
Zoredache

Bạn đã thử tạm thời vô hiệu hóa bất cứ điều gì để làm với xác thực / ủy quyền?
Zoredache

Tôi đã cố gắng làm cho nó hiển thị tổng quan về tất cả các kho lưu trữ (sau đó tôi phát hiện ra rằng có một lệnh khác cho việc đó), tôi đã xóa nó. Tôi cũng đã xóa xác thực nhưng nó không giải quyết được gì (Auth thực sự hoạt động tốt, nó yêu cầu tôi nhập tên người dùng / mật khẩu và chỉ chấp nhận kết hợp thực sự).
Bart S.

Câu trả lời:


22

Tôi đã có điều này gần đây ... nhưng hóa ra tôi đã quên url :)

Một điều bạn phải làm là đảm bảo Vị trí svn của bạn không trùng lặp với bất kỳ trang web nào có thể sử dụng được. tức là, nếu bạn đặt DocumentRoot của bạn thành / www và Vị trí svn của bạn là / www / svn ... thì bạn sẽ gặp rắc rối - Apache sẽ không biết nó được phục vụ với cái gì (ví dụ như các trình xử lý đặc biệt của svn hoặc một trình xử lý http thẳng).

Xem mục FAQ cho việc này .


Đây có vẻ như nó có thể là câu trả lời đúng, nhưng đây là một bài viết có thể khác liên quan đến điều này: forum.webfaction.com/viewtopic.php?id=2423 .
Paul Kroon

1
Wow, tôi đã biết về điều này nhưng tôi nghĩ rằng tôi đã thử nó lần nữa. Tôi đã tạo ra một kho lưu trữ mới và nó đã hoạt động. Tôi đã bối rối không biết tại sao lại như vậy, vì vậy tôi đã truy cập FTP vào máy chủ của mình và phát hiện ra có một thư mục trong thư mục httpdocs của tên miền phụ (được tạo bởi plesk) được gọi là test (giống như kho lưu trữ của tôi). Tôi đã xóa nó, và bây giờ nó hoạt động. Cảm ơn đã giúp đỡ.
Bart S.

1
Để xây dựng một chút về một kịch bản phổ biến. Nếu bạn có thiết lập máy chủ ảo và muốn SVN ở gốc (ví dụ: svn.example.com là URL repo của bạn), KHÔNG đặt "DocumentRoot / svn" và sau đó sử dụng khối "<Directory / svn>" trong Virtualhost của bạn thành cấu hình các tùy chọn DAV svn cho đường dẫn gốc. Điều này sẽ kích hoạt vấn đề mà Apache bị nhầm lẫn giữa trình xử lý DAV và các trình xử lý bên trong của nó. Không nên có lệnh DocumentRoot trong khối Virtualhost của bạn. Thay vào đó, sử dụng khối "<Location />" để định cấu hình các tùy chọn DAV svn cho đường dẫn gốc.
nezroy

Tôi đã đặt một lệnh Alias ​​trong cấu hình của mình, ví dụ Alias svn /repositoriesvà sau đó thiết lập mọi thứ trong đó <Location /svn/ >. Vấn đề chính xác như trong liên kết FAQ, mặc dù một cách bí ẩn, nó hoạt động hoàn hảo trong một tháng và sau đó dừng lại vào chiều thứ tư vào giờ uống trà. Nếu kho lưu trữ của bạn ở mức "/" thì bạn sẽ có sự trùng lặp với chỉ thị DocumentRoot của bạn.
Matt Connolly

Nó hoạt động hoàn hảo! Đó là vấn đề DocumentRoot! +1
Feiticeir0

2

Hãy thử kiểm tra http://svn.host.com/reposname/(lưu ý dấu gạch chéo).


Tôi là, lật đổ chỉ cần loại bỏ nó.
Bart S.

//, Điều này làm việc cho tôi.
Nathan Basan

2

Kiểm tra trang web này: http://www.rkrishardy.com/2009/12/subversion-fix-svn-copy-causes-reposeective-mond-permanentl/

Có lẽ bí danh trỏ đến cùng một vị trí với cấu hình là dav_svn.mod và có tình trạng chủng tộc giữa apache và dav_svn trong khi gia nhập repo.

Nó được giải thích tốt hơn trong bài viết được cung cấp

Trong dav_svn.conf:

  <Location /svn>  #Alias we are talking about
  DAV svn

Trong apache_site.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName svn.za11.pl

    #Alias /svn  "/mnt/nfs/svn/"  ###Comment out or change this alias
    DocumentRoot /mnt/nfs/svn/
    <Directory /mnt/nfs/svn/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
        AuthType Basic 
        AuthName "Subversion Repository"
        AuthUserFile /etc/apache2/dav_svn.passwd
        Require valid-user
    </Directory> 
... rest of the file

1
Liên kết ở đây đã chết, và không có khả năng thay thế.
sysadmin1138

//, Sẽ cập nhật câu trả lời này?
Nathan Basan

1

Tôi có một thiết lập vhost với repo svn.mydomain.com/sites/ của tôi tại vhost của tôi có khối DocumentRoot và Location. Loại bỏ tài liệu đã giải quyết vấn đề này.


1

Tôi đã gặp lỗi này khi tôi đặt nhầm repo của mình dưới cây html do Apache phục vụ, trên máy FC14 của tôi với cài đặt lật đổ và apache dựa trên RPM.

SVNParentPath (trong /etc/httpd/conf.d/subversion.conf) nên trỏ đến một thư mục bên ngoài DocumentRoot.

Tôi chuyển repo của tôi ra, và vấn đề đã biến mất.

Hi vọng điêu nay co ich.


1

Tôi biết điều này đã cũ nhưng tôi đã tìm thấy nó trên Google vì tôi có cùng một vấn đề. Đảm bảo rằng cổng 7080 không bị chặn bởi tường lửa của máy tính hoặc máy chủ


0

Có vẻ như bạn không làm svn checkout, mà là svn updatetrong một kho lưu trữ hiện có (?).

Nếu vậy, hãy làm điều này:

svn switch --relocate http://svn.host.com/reponame


Không, như bạn có thể thấy trong thông báo lỗi tôi đã cho biết "Lệnh: Thanh toán từ ..." Tôi thực sự đang thử thanh toán mới.
Bart S.

0

Di chuyển vĩnh viễn? Bạn có thể một cái gì đó như HTTPFox hoặc một cái gì đó và xác minh rằng Apache đang đưa ra mã trạng thái phù hợp cho kho lưu trữ của bạn (nên được 200/OK). Tôi tin rằng mã trạng thái 301tương ứng với một URL đã "di chuyển vĩnh viễn" và âm thanh đó giống như những gì khách hàng svn đang đề cập đến.


Firebird và wget đều cho 200 OK. Nhưng như tôi đã nói, nếu tôi duyệt qua trình duyệt của mình (bằng cách lướt tới http://svn.server.com/repos) thì nó hoạt động rất tốt, tôi nhận được "repos - Phiên bản 0: /" và mọi thứ. Vấn đề chỉ xảy ra khi tôi kiểm tra.
Bart S.

0

Có thể hơi muộn trong cuộc trò chuyện, nhưng tôi thấy điều này khi sử dụng Bí danh trong cấu hình apache để xử lý dấu vết '/': Bí danh / svn / path / to / svn /


0

Bạn cũng cần đảm bảo rằng không có bản đồ chỉ thị bí danh đến vị trí của repos svn. Tôi đã có điều này gần đây khi tôi có

Alias /svn /var/lib/svn
<Location /svn>
...
</Location>

trong đó bí danh và chỉ thị vị trí áp dụng cho cùng một đường dẫn.


0

Tôi chỉ gặp một vấn đề tương tự không phải khi KIỂM TRA, mà là khi CAM KẾT được thực hiện.

Nguyên nhân? thư mục này "obj \ Debug \ TempPE", vì một số lý do kỳ lạ rằng thư mục "TempPE" không thể hiển thị để CAM KẾT nó vào kho lưu trữ

Giải pháp? ... CAM KẾT tất cả các thư mục khác của dự án từng cái một và xóa vị trí đó khỏi máy chủ SVN

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.