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

时间:2008-09-26 18:29:55

标签: svn

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

我怎样才能找到它?

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

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

18 个答案:

答案 0 :(得分:206)

要查找subversion版本,您可以:

  1. 查看网页上的存储库,页面底部会显示如下内容:
    “由Subversion版本1.5.2(r32768)提供支持。”
  2. 从命令行:<在此处插入curl,grep oneliner>
  3. 如果未显示,请查看页面的来源

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

    现在用于颠覆CLIENT:

    svn --version
    

    就足够了

答案 1 :(得分:131)

让我们合并这些回复:

对于REPOSITORY / SERVER(原始问题):

如果能够访问Subversion服务器:

  • 从早期answerManuel,在SVN服务器上运行以下命令:

    svnadmin --version
    

如果是HTTP / HTTPS访问:

  • 通过浏览器访问服务器时,请参阅“由Subversion提供支持”行。

  • 通过浏览器访问存储库,然后查找嵌入在HTML源代码中的版本字符串。来自earlier answers by elviejojaredjacobs。同样,从??,使用浏览器的开发人员工具(通常是 Ctrl + Shift + I )来读取完整的响应。这也是处理证书和授权的最简单(非自动)方式 - 您的浏览器会为您执行此操作。

  • 检查响应标记(这些不在HTML源代码中显示),来自an earlier answer Christopher

    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

答案 2 :(得分:69)

在服务器上:svnserve --version

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

(完整性)。

答案 3 :(得分:48)

这是获取SVN服务器版本的最简单方法。 HTTP即使您的SVN存储库需要HTTPS也可以使用。

$ 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>

答案 4 :(得分:24)

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

您可以使用

获取客户端版本
`svn --version`

答案 5 :(得分:23)

如果未在HTML列表中打印Subversion服务器版本,则它在服务器返回的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';

答案 6 :(得分:8)

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

  • 在回购页面上打开工具 - > Web开发人员 - > Web控制台
  • 刷新页面
  • 点击 GET
  • 查看服务器行的响应标题部分

那里应该有一个“SVN / 1.7.4”字符串或类似字符串。同样,如果你有如上所述的“ServerTokens Full”,这可能只会起作用。

答案 7 :(得分:7)

试试这个:

ssh your_user@your_server svnserve --version

svnserve, version 1.3.1 (r19032)
   compiled May  8 2006, 07:38:44

我希望它有所帮助。

答案 8 :(得分:7)

确实没有 easy 方法来查找服务器正在运行的Subversion版本 - 除了进入服务器并亲自查看。< / p>

但是,这可能不像您想象的那么大。 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服务器将在可继承属性上提供更好的性能。
  • 两个新的可继承属性 - svn:global-ignoressvn:auto-props :唉!我们真正想要的是什么一种设置这两个属性而不依赖于Subversion配置文件本身的方法。但是,这是一个仅限客户端的问题,因此您使用的服务器版本无关紧要。
  • gnu-agent内存缓存:另一个仅限客户端的功能。
  • fsfs性能增强和authz in-repository身份验证。不错的功能,但无论您使用的是哪种版本的客户端,这些都可以正常工作。

在所有功能中,只有一个功能取决于服务器的版本是1.5或更高(1.4已经过时了一段时间.1.8的新功能将提高工作副本的性能,但服务器位于版本1.8不是必需的。您的客户端版本比服务器版本更受影响。

我知道这不是你想要的答案(没有官方的方式来查看服务器版本),但幸运的是服务器版本并没有真正影响你那么多。

答案 9 :(得分:4)

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

  

$ ssh user @ host svnserve --version

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

答案 10 :(得分:2)

只需使用网络浏览器转到SVN地址即可。检查源代码( Ctrl + U )。然后你会发现HTML代码中的内容:

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

答案 11 :(得分:2)

使用Firefox浏览存储库并使用Firebug检查元素。在NET选项卡下,您可以检查页面的标题。它会有类似的东西:

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

答案 12 :(得分:1)

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

答案 13 :(得分:1)

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

答案 14 :(得分:0)

除非管理员运行'svnadmin upgrade',否则不会自动更新存储库。要确保存储库的版本号,请检查“格式”文件。请参阅@bdumitriu's comment

答案 15 :(得分:0)

转到存储库文件夹并键入

svnadmin info .

它将返回您需要的内容,例如存储库格式和客户端兼容性版本。

Path: .
UUID: e65b8a35-4d38-7941-a369-78be7fd1bdf9
Revisions: 1294
Repository Format: 5
Compatible With Version: 1.10.0
Repository Capability: mergeinfo
Filesystem Type: fsfs
Filesystem Format: 8
FSFS Sharded: yes
FSFS Shard Size: 1000
FSFS Shards Packed: 1/1
FSFS Logical Addressing: yes
Configuration File: db\fsfs.conf

答案 16 :(得分:-1)

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

使用VisualSVN服务器管理器

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

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

enter image description here

如果点击版本,您还将看到组件的版本。

enter image description here

检查README.txt文件

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

  1. 启动 notepad.exe
  2. 打开%VISUALSVN_SERVER%README.txt 文件。第一行显示版本号。

enter image description here

答案 17 :(得分:-2)

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

   svn --version