如何实现像Google Code Hosting这样的/ svn-history/path呢?

And*_*cia 9 svn http

当您通过Apache Httpd发布Subversion存储库时,您将获得一个额外的功能:您可以使用任何HTTP客户端浏览源代码的HEAD修订版.

例如,我们有这个存储库:

http://trash-cli.googlecode.com/svn/trunk/
Run Code Online (Sandbox Code Playgroud)

使用任何HTTP客户端(例如Firefox),您可以在HEAD修订版中浏览文件.svnbook很好地解释了这是怎么回事.

但Google Code Hosting提供了额外的功能:您还可以浏览过去的修订版.例如,您可以浏览r10版本:

http://trash-cli.googlecode.com/svn-history/r10/trunk/
Run Code Online (Sandbox Code Playgroud)

你知道谷歌是怎么做到的吗?我也希望在我的公司存储库中使用此功能!:)

谢谢

更新1

以下行为可能有助于我们解决问题.例如,如果我访问存储库中不存在的路径

http://trash-cli.googlecode.com/svn-history/r10/non-existent
Run Code Online (Sandbox Code Playgroud)

我收到以下404错误:

未找到

在此服务器上找不到请求的URL/svn /!svn/bc/10 /不存在.

我怀疑场景下有一个URL重写规则.

更新2

请注意,这与此问题不同.我希望以一种Google代码所做的方式让用户感觉舒适的方式在我的公司存储库中公开这个服务,我对如何在没有此功能的外部存储库中获得旧版本感兴趣.我使用的是服务提供者的视角,而不是用户的视角.我希望让同事们的生活更轻松.

Wim*_*nen 13

subversion 1.6发行说明:

mod_dav_svn(服务器)的新公共"历史"HTTP URI语法

mod_dav_svn现在支持新的公共URI语法,用于检查旧版本的文件或目录.这里的目的是允许用户在不使用svn客户端的情况下检查历史记录,并使第三方工具(例如代码审查服务)更容易直接针对存储库而不使用svn库.

HTTP://主机/回购/路径[P = PEG] [&R = REV]


Fra*_*k V 0

我相信基本安装(来自 SubVersion 团队)并未附带此功能。我相信人们已经在 Subversion 客户端之上或与其结合构建了扩展或程序来获得该功能。

如果您运行存储库,您可能可以安装 WebSVN ( http://websvn.tigris.org/ ) 来获取您需要的内容。我确信还有其他选择。