我想知道我的服务器是否正在运行Subversion 1.5.
我怎么能找到它?
也很高兴知道我的SVN客户端版本号.svn help
没有帮助.
注意:我不想要我的项目的修订号等.这个问题是关于Subversion软件本身.
要查找subversion版本的副本,您可以:
查看Web上的存储库,在页面底部,它将显示如下内容:
"由Subversion版本1.5.2(r32768)提供支持."
从命令行:<插入curl,grep oneliner here>
如果未显示,请查看页面的来源
现在为subversion客户端:
svn --version
就足够了
让我们合并这些回复:
从早期的答案被曼努埃尔,运行SVN服务器上执行以下操作:
svnadmin --version
通过浏览器访问服务器时,请参阅"由Subversion提供支持"行.
通过浏览器访问存储库,然后查找嵌入在HTML源代码中的版本字符串.来自elviejo和jaredjacobs的早期答案.同样,从??,使用浏览器的开发人员工具(通常是Ctrl+ Shift+ I)来读取完整的响应.这也是处理证书和授权的最简单(非自动)方式 - 您的浏览器会为您执行此操作.
检查响应标签(这些都不是在HTML源代码所示),从早期的答案由克里斯托弗
wget -S --spider 'http://svn.server.net/svn/repository' 2>&1 | sed -n '/SVN/s/.*\(SVN[0-9\/\.]*\).*/\1/p'
从早期的答案被米伦
svnserve --version (run on svn server)
从早期的答案被格伦
ssh user@host svnserve --version
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的配置(svn://和svn + xxx://)的情况下.
(完整性).
这是获取SVN服务器版本的最简单方法.即使您的SVN存储库需要HTTPS,HTTP也能正常工作.
$ curl -X OPTIONS http://my-svn-domain/ ... ... Apache/2.2.11 (Debian) DAV/2 SVN/1.5.6 PHP/5.2.9-4 ...
对于基于HTTP的服务器,有一个Python脚本可以在以下位置找到服务器版本:http: //svn.apache.org/repos/asf/subversion/trunk/tools/client-side/server-version.py
你可以获得客户端版本
`svn --version`
如果未在HTML列表中打印Subversion服务器版本,则它在服务器返回的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';
还有一个选择:如果您有Firefox(我使用的是14.0.1)和一个SVN Web界面:
在repo页面上打开Tools-> Web Developer-> Web Console
刷新页面
单击GET行
查看Server:行的Response Headers部分
那里应该有一个"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或更高版本,这就不是问题.
属性继承:这是另一个1.8版本更新,但这适用于任何Subversion服务器 - 尽管运行1.8的Subversion服务器将在可继承属性上提供更好的性能.
两个新的可继承属性 - svn:global-ignores
和svn:auto-props
:唉!我们真正想要的是什么 一种设置这两个属性而不依赖于Subversion配置文件本身的方法.但是,这是一个仅限客户端的问题,因此您使用的服务器版本无关紧要.
gnu-agent内存缓存:另一个仅限客户端的功能.
fsfs性能增强和authz in-repository身份验证.不错的功能,但无论您使用的是哪种版本的客户端,这些都可以正常工作.
在所有功能中,只有一个功能取决于服务器的版本是1.5或更高(1.4已经过时了一段时间.1.8的新功能将提高工作副本的性能,但服务器处于修订版1.8不是没必要.您的客户端版本比服务器版本更受影响.
我知道这不是你想要的答案(没有官方的方式来查看服务器版本),但幸运的是服务器版本并没有真正影响你那么多.
试试这个:
ssh your_user@your_server svnserve --version svnserve, version 1.3.1 (r19032) compiled May 8 2006, 07:38:44
我希望它有所帮助.