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

我怎么才能知道呢?

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

注意:我不想要我的项目的修订号等。这个问题是关于Subversion软件本身的。


当前回答

要知道您的服务器正在运行哪个版本的Subversion,确实没有一个简单的方法——除非进入服务器并亲自查看。

然而,这可能不是你想象的那么大的问题。Subversion客户端是处理大量繁重工作的地方,大多数版本的Subversion客户端可以与几乎任何版本的服务器一起工作。

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

让我们看看Subversion 1.8的最新变化:

svn move is now a first class operation: Subversion finally understands the svn move is not a svn copy and svn delete. However, this is something that the client handles and doesn't really affect the server version. svn merge --reintegrate deprecated: Again, as long as the server is at version 1.5 or greater this isn't an issue. Property Inheritance: This is another 1.8 release update, but this will work with any Subversion server -- although Subversion servers running 1.8 will deliver better performance on inheritable properties. Two new inheritable properties - svn:global-ignores and svn:auto-props: Alas! What we really wanted. A way to setup these two properties without depending upon the Subversion configuration file itself. However, this is a client-only issue, so it again doesn't matter what version of the server you're using. gnu-agent memory caching: Another client-only feature. fsfs performance enhancements and authz in-repository authentication. Nice features, but these work no matter what version of the client you're using.

在所有的特性中,只有一个依赖于服务器的版本为1.5或更高(1.4已经过时很长一段时间了。1.8的新特性将提高工作副本的性能,但服务器处于1.8版本并不是必要的。客户端版本比服务器版本对您的影响更大。

我知道这不是您想要的答案(没有查看服务器版本的官方方法),但幸运的是,服务器版本对您的影响并不大。

其他回答

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

服务器端:svnserve——version

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

(完整性)。

对于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的服务器,有一个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';