Answers:
要查找Subversion REPOSITORY的版本,您可以:
如果未显示,请查看页面源
<svn version="1.6.13 (r1002816)" href="http://subversion.tigris.org/">
现在对于Subversion CLIENT:
svn --version
就足够了
svn://
-only。
让我们合并这些响应:
通过浏览器访问服务器时,请参阅“ Subversion支持”行。
通过浏览器访问存储库,然后查找HTML源代码中嵌入的版本字符串。摘自elviejo和jaredjacobs的早期答案。同样,从??,使用浏览器的开发人员工具(通常是Ctrl+ Shift+ I)读取完整的响应。这也是处理证书和授权的最简单(非自动化)方式-您的浏览器会为您完成。
根据克里斯托弗(Christopher)先前的回答,检查响应标签(这些未在HTML源代码中显示)。
wget -S --spider 'http://svn.server.net/svn/repository' 2>&1 |
sed -n '/SVN/s/.*\(SVN[0-9\/\.]*\).*/\1/p'
Check out the current version in a FAQ:
http://code.google.com/p/support/wiki/SubversionFAQ#What_version_of_Subversion_do_you_use?
TBD
请编辑以完成此答案
svn --version
svnserve --version
必须在服务器上使用。如果在客户端上运行,它将给出客户端而不是服务器的版本号。
在服务器上: svnserve --version
如果是基于svnserve的配置(svn://和svn + xxx://)。
(为了完整性)。
svnserve
不是客户端程序,而是服务器。在服务器上时,您必须输入上面的命令。
这是获取SVN服务器版本的最简单方法。即使您的SVN信息库需要HTTPS,HTTP仍然可以工作。
$ curl -X选项http:// my-svn-domain / <!DOCTYPE HTML PUBLIC“-// IETF // DTD HTML 2.0 // EN”> <html> <head> ... </ head> <body> ... <地址> Apache / 2.2.11(Debian)DAV / 2 SVN / 1.5.6 PHP / 5.2.9-4 ... </地址> </ body>
</ html>
对于基于HTTP的服务器,有一个Python脚本可在以下位置找到服务器版本:http : //svn.apache.org/repos/asf/subversion/trunk/tools/client-side/server-version.py
您可以使用获得客户端版本
`svn --version`
如果Subversion服务器版本未在HTML列表中打印,则该版本在服务器返回的HTTP RESPONSE标头中可用。您可以使用此shell命令获取它
wget -S --no-check-certificate \
--spider 'http://svn.server.net/svn/repository' 2>&1 \
| sed -n '/SVN/s/.*\(SVN[0-9\/\.]*\).*/\1/p';
如果SVN服务器要求您提供用户名和密码,请添加wget
参数--user
,并--password
以这样的命令
wget -S --no-check-certificate \
--user='username' --password='password' \
--spider 'http://svn.server.net/svn/repository' 2>&1 \
| sed -n '/SVN/s/.*\(SVN[0-9\/\.]*\).*/\1/p';
--no-check--certificate
参数a --user
和--password
来处理需要凭据但没有有效的ssh证书的服务器。如您所说,这很常见。
另一种选择:如果您使用Firefox(我使用的是14.0.1)和SVN Web界面:
那里应该有一个“ SVN / 1.7.4”字符串或类似的字符串。同样,这只有在您具有如上所述的“ ServerTokens Full”时才可能起作用。
找出您的服务器正在运行哪个版本的Subversion 确实不是一个简单的方法-除了进入服务器并亲自查看之外。
但是,这可能不是您认为的那么大的问题。Subversion客户端需要处理很多繁重的工作,并且大多数Subversion客户端版本都可以与几乎任何版本的服务器一起使用。
服务器版本对客户端产生重大影响的最后一个版本是添加合并跟踪后从1.4版更改为1.5版。合并跟踪在1.6版中得到了很大的改进,但这并没有真正影响客户端和服务器之间的交互。
让我们来看看Subversion 1.8中的最新变化:
svn move
现在是一流的操作:Subversion终于明白了svn move
不是svn copy
和svn delete
。但是,这是客户端处理的,并不会真正影响服务器版本。svn merge --reintegrate
不推荐使用:同样,只要服务器的版本为1.5或更高,这都不是问题。svn:global-ignores
和svn:auto-props
:las!我们真正想要的。无需依赖Subversion配置文件本身即可设置这两个属性的方法。但是,这是一个仅客户端的问题,因此无论您使用什么版本的服务器,都没有关系。在所有功能中,只有一个取决于服务器的版本为1.5或更高(并且1.4已经过时了一段时间。1.8的较新功能将提高工作副本的性能,但版本为1.8的服务器则不行)不需要。与服务器版本相比,您受客户端版本的影响更大。
我知道这不是您想要的答案(没有正式的方式查看服务器版本),但是幸运的是,服务器版本并没有真正影响您。
对于svn + ssh配置,请使用ssh在主机上运行svnserve --version:
$ ssh user @ host svnserve --version
必须在实际充当服务器的计算机上运行svnserve命令。
命令行上的以下内容应为您提供版本号
svn --version
svn help
没有帮助,因为它没有列出以两个破折号开头的参数。寻找我的svn版本时,是透过Google找到您的讯息。
除非管理员运行“ svnadmin upgrade”,否则不会自动更新存储库。要确定存储库的版本号,请检查“格式”文件。参见@bdumitriu的评论。