如何通过网络视图浏览Subversion存储库的旧版本?

151

我知道如何通过项目的网页前端浏览Subversion代码库,但似乎我只能浏览主干最新版本。是否有办法通过Web UI浏览旧版本的主干?

我知道如何在命令行中执行此操作,但我需要知道如何使用URL执行此操作,因为我要将这些URL嵌入文档中。我也知道我可以创建主干的svn风格标记,但我不想这样做。


4
subversion 1.6现在有了官方的语法来实现这个功能。请看我在这里给出的答案:https://dev59.com/yUfRa4cB1Zd3GeqP5gNB - Wim Coenen
6个回答

190

在你的仓库URL后面追加类似这样的内容:

!svn/bc/<revision_number>/
例如。
http://www.example.com/svnrepository/!svn/bc/3/

替代方法

来自Bert Huijben 的评论:

如果你的代码库使用的是Subversion 1.6.0或者更高版本,在URL中添加 example.com/svnrepository/?p=3 就可以得到相同的结果...这个方法已经被文档化了。(?r=文件的修订版本,?p=URL的操作修订版本)。请参考Subversion 1.6发布说明。


9
我完全惊讶这个方法可行...(我刚检查过,它确实可行)。 我被告知很多次这是不可能的。请注意,在URL中,提到的字符串必须紧跟在存储库根目录后面,然后您可以在其后放置存储库的子目录。 - rmeador
58
如果你的代码库使用Subversion 1.6.0或更高版本进行托管,你可以使用http://www.example.com/svnrepository/?p=3来获得相同的结果...这种方法是有记录的。(?r= 文件的版本号, ?p= url 地址的操作版本号)。请参阅Subversion 1.6发行说明。 - Bert Huijben
2
仅作为对BertHuijbens帖子的补充,要查看特定文件夹的过去版本,您需要执行example.com/svnrepository/path/to/specific/folder/?p=3。出于某种原因,我认为?p=3应该首先出现,并想在这里发布相关信息。 - shmeeps
1
由于这个问题非常晦涩难懂,值得注意的是,访问文件是通过在该块后添加其路径来实现的。例如:http://www.example.com/svnrepository/!svn/bc/3/tags/1.0/ 让我花了一段时间才意识到! - albfan
3
@rmeador的评论真的需要并入这个回答中,否则会误导人:你不需要把!svn/etc...附加在你的_URL_结尾处。(1) 通过命令svn info .找到你的版本库根目录 (2) 在其后面追加/!svn/bc/<revision_number>/ (3) 然后再追加你的文件夹或文件的路径(如果有的话)。 - Bob Stein
显示剩余3条评论

82

3
干得好,比被接受的答案简单多了。 - pmckeown

1

3
尝试了这个方法,但无效,它只获取了文件的最新版本。 - jcollum

0

从网页上,您可以转到存储库 SVN 页面并在其后添加 / :

https://<host>/subversion/source/<revision>

例如:

https://app.assembla.com/spaces/myproject/subversion/source/1200

0

-3

内置的Web界面不允许检索旧版本(或任何其他信息,除了您已经看到的)。 您可以安装第三方基于Web的存储库浏览软件来解决此限制。 我自己没有使用过任何软件,因此不会提供建议,但我相信其他人会(快速谷歌搜索也会帮助您找到一些)。


正如SebaGR所指出的那样,如果您直接操纵URL,就可以访问旧版本。然而,没有UI来完成这项工作。我感到非常惊讶的是,这一点实际上是可能的,因为我一直被告知它是不可能的... - rmeador
6
在Subversion 1.6.0中,?p=和?r=参数被作为公共特性添加(并记录在文档中)。 - Bert Huijben
3
1.5版本的WebDAV接口不允许通过内置接口进行版本修订浏览。在http://svnbook.red-bean.com/en/1.5/svn-book.pdf中提到: 我能查看旧版本吗?用普通的网页浏览器?简单回答:不行。至少,仅凭 mod_dav_svn 是不行的。 - Zach Young

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接