如何找到我的Subversion服务器版本号?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (10)
  • 关注 (0)
  • 查看 (1489)

我想知道我的服务器是否能够运行Subversion 1.5。

虽然我知道我的SVN客户端版本号,但是svn help不能起到任何作用。

注意:我要的不是project修订编号,这个问题和Subversion软件自身有关。

提问于
用户回答回答于

对于SVN+ssh配置,可以使用ssh在主机上运行svnservice-version :

$ ssh user@host svnserve --version

并且有必要在作为服务器的机器上运行svnserve命令。

用户回答回答于

以下代码可能会起到作用:

ssh your_user@your_server svnserve --version

svnserve, version 1.3.1 (r19032)
   compiled May  8 2006, 07:38:44
用户回答回答于

除非你到服务器上查看,否则确实没有更简单的方法可以找到在服务器上正在运行的Subversion的版本。

Subversion客户端大部分都是在处理繁琐的工作,并且大多数Subversion客户端版本都可以大多数版本的服务器上工作。

服务器版本真正对客户机产生影响的最后一个版本是在添加合并跟踪时从1.4版本到1.5版的变更。在1.6版本中,合并跟踪得到了很大的改进,但这并没有真正影响到客户机和服务器之间的交互。

Subversion 1.8中的最新变化:

  • Subversion现在能够理解svn move不是svn copysvn delete,但这是客户端处理的内容,并且对服务器版本并不产生实际影响。
  • 弃用svn merge --reintegrate
  • 属性继承:这是1.8版本的更新,但是这将适用于任何Subversion服务器 - 尽管运行1.8版本的Subversion服务器将会为可继承属性提供更好的性能。
  • 两个新的可继承的属性-svn:global-ignoressvn:auto-props
  • GNU-agent内存缓存:客户端专用功能。
  • fsfs性能增强和authz身份验证。

在所有的特性中,只有一个取决于服务器的版本是1.5或者更高(1.4已经过时)。更新的1.8特性将提高工作副本的性能,但是服务器的版本并不一定要是1.8。与服务器版本相比,客户端版本影响更大。

用户回答回答于

如果你有Firefox(我使用的是14.0.1)和SVN Web接口:

  • 在repo页面上打开Tools->WebDeveloper->Web Console
  • 刷新页面
  • 单击GET
  • 查看服务器Response Headers部分

然后会出现“SVN/1.7.4”或类似的字符串。不过,这可能只有在上面提到的“ServerTokensFull”的情况下才能生效。

用户回答回答于

如果在HTML列表中没有打印Subversion服务器版本,则可以在服务器返回的HTTP响应头中使用。可以使用以下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';
用户回答回答于

以下为获得SVN服务器版本的最简单方法。即使你的svn存储库需要的是HTTPS,在HTTP上也能生效。

$ curl -X OPTIONS http://my-svn-domain/
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>...</head>
<body>...
<address>Apache/2.2.11 (Debian) DAV/2 SVN/1.5.6 PHP/5.2.9-4 ...</address>
</body></html>
用户回答回答于

在服务器上:svnserve --version

如果是基于svnservice的配置(svn://和svn+xxx://)。

用户回答回答于

对于存储库/服务器(原始问题):

访问Subversion服务器:

HTTP/HTTPS访问:

通过浏览器访问存储库,然后查找嵌入到HTML源代码中的版本字符串。使用浏览器的开发工具(通常是Ctrl + Shift + I)来读取全部响应。这也是处理证书和授权的最简单(非自动化的)方法:

  • 当通过浏览器访问服务器时,请参阅“powered by Subversion”。
  • elviejojaredjacobs之前建议通过浏览器访问存储库,然后查找嵌入到HTML源代码中的版本字符串。同样,使用浏览器的开发工具(通常为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'

svn/ssh+svn途径:

GoogleCode SVN服务器

    Check out the current version in a FAQ: 
    http://code.google.com/p/support/wiki/SubversionFAQ#What_version_of_Subversion_do_you_use?

另一个自定义SVN服务器

    TBD

对于CLIENT(不是原始问题):

svn --version
用户回答回答于

可以通过以下途径查找Subversion存储库的版本:

  1. 查看网页上的存储库和页面底部,它会显示: “"Powered by Subversion version 1.5.2 (r32768)。”
  2. 在命令行输入:<insert curl, grep oneliner here>

如果没有显示的话,请查看该页面的源代码:

<svn version="1.6.13 (r1002816)" href="http://subversion.tigris.org/"> 

对于Subversion客户端:

svn --version

扫码关注云+社区

领取腾讯云代金券