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

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

我怎么才能知道呢?

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

我不想要我的项目的版本号,等等。这个问题是关于Subversion的软件本身的。

349212 次浏览
对于基于http的服务器,有一个Python脚本可以找到服务器版本: http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/server-version.py < / p >

您可以使用

`svn --version`

在服务器上:svnserve --version

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

(完整性)。

要查找subversion REPOSITORY的版本,您可以:

    查看web上的存储库,在页面底部它会这样说:
    "由Subversion版本1.5.2 (r32768)提供支持。"李< / >
  1. insert curl, grep oneliner here>

如果未显示,请查看该页的源代码

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

现在是subversion客户端:

svn --version

就足够了

下面是获取SVN服务器版本的最简单方法。即使您的SVN存储库需要HTTPSHTTP也可以工作。

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

如果SVN服务器需要用户提供用户名和密码,则在命令中添加参数wget,如下所示

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. ..." ...

让我们把这些回答合并起来:

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

如果能够访问Subversion服务器:

  • 从以前的回答 by 曼努埃尔,在SVN服务器上执行以下命令:

    svnadmin --version
    

If HTTP/HTTPS access:

  • See the "powered by Subversion" line when accessing the server via a browser.

  • Access the repository via browser and then look for the version string embedded in the HTML source. From earlier answers by elviejo and jaredjacobs. Similarly, from ??, use your browser's developer tools (usually Ctrl + Shift + I) to read the full response. This is also the easiest (non-automated) way to deal with certificates and authorization - your browser does it for you.

  • Check the response tags (these are not shown in the HTML source), from an earlier answer by Christopher

    wget -S --spider 'http://svn.server.net/svn/repository' 2>&1 |
    sed -n '/SVN/s/.*\(SVN[0-9\/\.]*\).*/\1/p'
    

If svn:// or ssh+svn access

If GoogleCode SVN servers

    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

Please edit to finish this answer

对于客户(不是原来的问题):

svn --version

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

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

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

  • 在回购页面上打开工具->Web开发器->Web控制台
  • 刷新页面
  • 单击得到
  • 响应头部分的服务器:行中查找

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

对于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服务器。

确实没有简单< em > < / em >方法来找出你的服务器正在运行的Subversion的版本——除了进入服务器并自己查看。

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

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

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

  • svn move现在是一个第一类操作: Subversion最终理解了svn move不是svn copysvn delete。然而,这是客户端处理的事情,并不会真正影响服务器版本。
  • svn merge --reintegrate弃用:同样,只要服务器是1.5或更高版本,这就不是问题。
  • 财产继承:这是另一个1.8版本更新,但这将适用于任何Subversion服务器——尽管运行1.8的Subversion服务器将在可继承属性上提供更好的性能。
  • 两个新的可继承属性——__ABC0和svn:auto-props:唉!我们真正想要的。在不依赖Subversion配置文件本身的情况下设置这两个属性的方法。但是,这是一个仅针对客户端的问题,所以同样与您使用的服务器版本无关。
  • Gnu-agent内存缓存:另一个仅面向客户端的特性。
  • FSFS性能增强和库内认证。不错的特性,但无论您使用的是什么版本的客户端,这些特性都可以工作。

在所有的特性中,只有一个依赖于服务器的版本为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

我希望这能有所帮助。

如果使用VisualSVN Server,可以通过几种不同的方法找到版本号。

使用VisualSVN服务器管理器

按照以下步骤通过管理控制台找到版本:

  1. 启动VisualSVN服务器管理器控制台。
  2. 查看仪表板右下角的版本

enter image description here

如果你点击版本,你也会看到组件的版本。

enter image description here

检查README.txt文件

按照以下步骤从readme.txt文件中找到版本:

  1. notepad.exe开始。
  2. 打开% VISUALSVN_SERVER %的需要文件。第一行显示版本号。

enter image description here