[英]How to find my Subversion server version number?
我想知道我的服务器是否正在运行 Subversion 1.5。
我怎样才能找到它?
也很高兴知道我的 SVN 客户端版本号。 svn help
没有帮助。
注意:我不想要我的项目的修订号等。这个问题是关于Subversion 软件本身的。
要查找 subversion REPOSITORY 的版本,您可以:
如果没有显示,查看页面源码
<svn version="1.6.13 (r1002816)" href="http://subversion.tigris.org/">
现在对于颠覆客户端:
svn --version
就足够了
让我们合并这些响应:
通过浏览器访问服务器时,请参阅“由 Subversion 提供支持”这一行。
通过浏览器访问存储库,然后查找嵌入在 HTML 源代码中的版本字符串。 来自elviejo和jaredjacobs 的早期回答。 同样,从 ?? 开始,使用浏览器的开发人员工具(通常是Ctrl + Shift + I )阅读完整响应。 这也是处理证书和授权的最简单(非自动化)方法 - 您的浏览器会为您完成。
检查响应标签(这些未显示在 HTML 源代码中),来自Christopher 较早的回答
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 的配置(svn:// 和 svn+xxx://)。
(为了完整性)。
对于基于 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';
还有一种选择:如果您有 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
deprecated :同样,只要服务器是 1.5 或更高版本,这不是问题。svn:global-ignores
和svn:auto-props
:唉! 我们真正想要的。 一种设置这两个属性而不依赖于 Subversion 配置文件本身的方法。 但是,这是一个仅限客户端的问题,因此再次与您使用的服务器版本无关。在所有功能中,只有一个取决于服务器的版本为 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
我希望它有帮助。
对于 svn+ssh 配置,使用 ssh 在主机上运行 svnserve --version:
$ ssh user@host svnserve --version
需要在实际充当服务器的机器上运行 svnserve 命令。
使用 Firefox 浏览存储库并使用Firebug检查元素。 在 NET 选项卡下,您可以检查页面的 Header。 它会有类似的东西:
Server: Apache/2.2.14 (Win32) DAV/2 SVN/1.X.X
只需使用网络浏览器转到 SVN 地址即可。 检查源代码( Ctrl + U )。 然后你会在 HTML 代码中找到类似的东西:
<svn version="1.6. ..." ...
对于 Subversion 1.7 及更高版本,服务器不提供指示服务器版本的页脚。 但是您可以运行以下命令从响应头中获取版本
$ curl -s -D - http://svn.server.net/svn/repository
HTTP/1.1 401 Authorization Required
Date: Wed, 09 Jan 2013 03:01:43 GMT
Server: Apache/2.2.9 (Unix) DAV/2 SVN/1.7.4
请注意,这也适用于您无权访问的 Subversion 服务器。
您可以使用HTTP连接到 Subversion 服务器并在 HTTP 标头中找到版本号。
除非管理员运行“ svnadmin upgrade”,否则不会自动更新存储库。 要确定存储库的版本号,请检查“格式”文件。 参见@bdumitriu的评论 。
转到存储库文件夹并输入
svnadmin info .
它将返回您需要的内容,例如存储库格式和客户端兼容性版本。
Path: .
UUID: e65b8a35-4d38-7941-a369-78be7fd1bdf9
Revisions: 1294
Repository Format: 5
Compatible With Version: 1.10.0
Repository Capability: mergeinfo
Filesystem Type: fsfs
Filesystem Format: 8
FSFS Sharded: yes
FSFS Shard Size: 1000
FSFS Shards Packed: 1/1
FSFS Logical Addressing: yes
Configuration File: db\fsfs.conf
命令行上的以下内容应为您提供版本号
svn --version
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.