我想知道我的服务器是否正在运行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版本并不是必要的。客户端版本比服务器版本对您的影响更大。

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

其他回答

用Firefox浏览存储库,用Firebug检查元素。在NET选项卡下,您可以检查页面的Header。它会像这样:

Server: Apache/2.2.14 (Win32) DAV/2 SVN/1.X.X

要知道您的服务器正在运行哪个版本的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版本并不是必要的。客户端版本比服务器版本对您的影响更大。

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

如果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';

通过浏览器直接访问SVN的地址即可。检查源代码(Ctrl + U),然后你会在HTML代码中发现如下内容:

<svn version="1.6. ..." ...

还有一个选择:如果你有Firefox(我使用14.0.1)和SVN的web界面:

打开工具->Web Developer->Web控制台在一个回购页面 刷新页面 单击GET行 查看Server:行的Response Headers部分

这里应该有一个“SVN/1.7.4”字符串或类似的字符串。同样,这可能只在上面提到的“ServerTokens Full”时才有效。