2009-03-26 33 views
9

Khi bạn xuất bản một kho lưu trữ Subversion máng Apache Httpd bạn có một tính năng tiền thưởng: bạn có thể duyệt bản sửa đổi CHÍNH của các nguồn của bạn với bất kỳ ứng dụng khách HTTP nào.Cách triển khai/svn-history/đường dẫn như Google Code Hosting hoạt động như thế nào?

Ví dụ, chúng tôi có kho lưu trữ này:

http://trash-cli.googlecode.com/svn/trunk/ 

Với bất kỳ khách hàng HTTP (ví dụ Firefox), bạn có thể duyệt các tập tin vào việc sửa đổi HEAD. Sách svnbook giải thích rất rõ cách thực hiện.

Nhưng Google Code Hosting cung cấp tính năng bổ sung: bạn cũng có thể duyệt qua các bản chỉnh sửa trước đây. Ví dụ: bạn có thể duyệt bản sửa đổi r10:

http://trash-cli.googlecode.com/svn-history/r10/trunk/ 

Bạn có biết Google làm như thế nào không? Tôi cũng muốn tính năng này trong kho lưu trữ của công ty mình! :)

Cảm ơn

Cập nhật 1

Các hành vi sau đây có thể giúp chúng ta giải quyết vấn đề. Nếu tôi ghé thăm một con đường mà không tồn tại trong kho lưu trữ, ví dụ

http://trash-cli.googlecode.com/svn-history/r10/non-existent 

tôi có 404 báo lỗi sau:

Not Found

The requested URL /svn/!svn/bc/10/non-existent was not found on this server.

Tôi nghi ngờ rằng có một quy tắc viết lại URL dưới bối cảnh đó.

Cập nhật 2

Xin lưu ý rằng đây không phải là cùng một this question. Tôi muốn hiển thị dịch vụ này trên kho lưu trữ của công ty theo cách thoải mái với người dùng theo cách mà Google Code thực hiện, tôi không quan tâm cách sửa đổi cũ trong kho lưu trữ bên ngoài không có tính năng này. Tôi đang sử dụng quan điểm của nhà cung cấp dịch vụ chứ không phải quan điểm của người dùng. Tôi muốn làm cho cuộc sống của tôi dễ dàng hơn với đồng nghiệp của tôi.

+0

http://stackoverflow.com/questions/651305/how-do-i-browse-an-old-revision-of-a-subversion-repository-through- web-view – SilentGhost

Trả lời

0

Tôi tin rằng cài đặt cơ bản (từ nhóm SubVersion) không đi kèm với tính năng này ra khỏi hộp. Tôi tin rằng mọi người đã xây dựng các tiện ích mở rộng hoặc chương trình trên cùng hoặc kết hợp với ứng dụng Subversion để có được tính năng đó.

Nếu bạn chạy kho lưu trữ, bạn có thể cài đặt WebSVN (http://websvn.tigris.org/) để có được những gì bạn cần. Có những lựa chọn khác, tôi chắc chắn.

0

Nối một cái gì đó như thế này để URL kho của bạn:

!svn/bc/<revision_number>/ 

Ví dụ:

http://www.example.com/svnrepository/!svn/bc/3/ 

trùng lặp:How do I browse an old revision of a Subversion repository through the web view?

+0

Bạn nói đúng, nhưng đó không phải là vấn đề của tôi. Tôi nên rõ ràng hơn trong những gì tôi yêu cầu. Tôi đã cập nhật tiêu đề câu hỏi và mô tả để làm cho vấn đề của tôi rõ ràng hơn. –

+0

Trong mọi trường hợp: cảm ơn! –

+0

Cảm ơn câu trả lời này - nó có thể không liên quan đến câu hỏi OPs nhưng nó đã giúp tôi. –

0

Tôi đã học the Apache docs và tôi nghĩ rằng nó có thể được giải quyết bằng quy tắc này trong httpd.conf.

RewriteRule ^/svn-history/r([0-9]+)/(.*) /svn/!svn/bc/$1/$2 

Tôi chưa thử nghiệm. Tôi sẽ kiểm tra nó sau.

+0

Nhìn vào câu trả lời của tôi ... Tôi đã trả lời câu hỏi này trong một câu hỏi trước. Bạn không cần viết lại gì cả. – Seb

+0

Có, tôi thấy điểm của bạn nhưng hãy đọc Cập nhật 2 trong câu hỏi. –

13

Từ subversion 1.6 release notes:

New public 'historical' HTTP URI syntax for mod_dav_svn (server)

mod_dav_svn now supports a new public URI syntax for examining older versions of files or directories. The intent here is to allow users to examine history without the use of an svn client, and to make it easier for 3rd-party tools (e.g. code-review services) to work directly against repositories without using svn libraries.

http://host/repos/path?[p=PEG][&r=REV]

+0

Wow! Đây có vẻ là giải pháp sạch nhất mà tôi có thể tìm thấy! Vấn đề duy nhất là tại thời điểm này tôi không có subversion 1.6 trên Fedora của tôi và tôi không biết nếu có một RPM dựng sẵn cho điều đó. Dù sao cũng cảm ơn bạn. +1 –

+0

CollabNet cung cấp svn rpm's (http://www.collab.net/downloads/subversion/redhat.html) nhưng chúng chưa được đóng gói subversion 1.6. –

+0

Cập nhật: có vẻ như họ đã đóng gói ngay bây giờ. –

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