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

时间:2020-03-06 14:47:56  来源:igfitidea点击:

我想知道我的服务器是否正在运行Subversion 1.5.

我怎样才能找到答案?

也很高兴知道我的SVN客户端版本号。 svn help没有帮助。

注意:我不需要我的项目的修订号等。此问题与Subversion软件本身有关。

解决方案

命令行上的以下内容应为我们提供版本号

svn --version

对于基于HTTP的服务器,有一个Python脚本可在以下位置找到服务器版本:
http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/server-version.py

我们可以使用获得客户端版本

`svn --version`

在服务器上:svnserve --version

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

(为了完整性)。

要查找Subversion REPOSITORY的版本,我们可以:

  • 查看Web上的存储库,页面底部将显示类似内容:"由Subversion版本1.5.2(r32768)提供支持"。
  • 在命令行中:<在此处插入curl,grep oneliner>

如果未显示,请查看页面源

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

现在,对于Subversion CLIENT:

svn --version

就足够了

这是获取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>

对于svn + ssh配置,请使用ssh在主机上运行svnserve --version:

$ ssh user@host svnserve --version

必须在实际充当服务器的计算机上运行svnserve命令。

我们可以使用HTTP连接到Subversion服务器,并在HTTP标头中找到版本号。

如果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\/\.]*\).*//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\/\.]*\).*//p';