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

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

我怎样才能find?

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

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

要findSubversion的REPOSITORY的版本,你可以:

  1. 看看在networking上的存储库,并在页面的底部,它会像这样说:
    “由Subversion版本1.5.2(r32768)提供支持”。
  2. 从命令行:<insert curl,grep oneliner here>

如果不显示,查看页面的来源

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

现在为了颠覆客户端:

 svn --version 

就足够了

我们来合并这些回应:

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

如果能够访问Subversion服务器:

  • 从Manuel先前的回答 ,在SVN服务器上运行以下内容:

     svnadmin --version 

如果HTTP / HTTPS访问:

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

  • 通过浏览器访问版本库,然后查找embedded在HTML源代码中的版本string。 来自elviejo和jaredjacobs的 早期回答 。 同样,从??,使用您的浏览器的开发人员工具(通常Ctrl + Shift + I )来阅读完整的响应。 这也是处理证书和授权的最简单的(非自动的)方法 – 您的浏览器为您做的。

  • 检查响应标签(这些不在HTML源中显示),从克里斯托弗 的早期回答

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

如果svn://或者ssh + svn访问

  • 从Milen 早先的答案

     svnserve --version (run on svn server) 
  • 从格伦 的早期回答

     ssh user@host svnserve --version 

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

请编辑完成这个答案

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

 svn --version 

在服务器上: svnserve --version

在基于svnserve的configuration(svn://和svn + xxx://)的情况下。

(为了完整)。

这是获取SVN服务器版本的最简单的方法。 即使您的SVN存储库需要HTTPS, HTTP也能正常工作。

 $ curl -X选项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>

对于基于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'; 

还有一个select:如果你有Firefox(我正在使用14.0.1)和一个SVN网页界面:

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

应该有一个“SVN / 1.7.4”string或类似的地方。 同样,如果你有上面提到的“ServerTokens Full”,这可能只会起作用。

真的不是一个简单的方法来找出你的服务器运行的是什么版本的Subversion – 除了进入服务器并亲自查看。

但是,这可能不像您想像的那么大。 Subversion客户端大部分都是在处理繁琐的工作,大多数Subversion客户端版本都可以在几乎任何版本的服务器上工作。

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

我们来看看Subversion 1.8中的最新变化:

  • svn move现在是一stream的操作了 :Subversion终于明白了svn move不是svn copysvn delete 。 但是,这是客户端处理的事情,并不会真正影响服务器版本。
  • svn merge --reintegrate deprecated :同样,只要服务器版本是1.5或更高,这不是问题。
  • 属性inheritance :这是另外一个1.8版本的更新,但是这将适用于任何Subversion服务器 – 尽pipe运行1.8版本的Subversion服务器将会为可inheritance属性提供更好的性能。
  • 两个新的可inheritance的属性 – svn:global-ignoressvn:auto-props :唉! 我们真正想要的 一种设置这两个属性的方法,而不依赖于Subversionconfiguration文件本身。 但是,这是一个客户端问题,所以再次使用您使用的服务器版本并不重要。
  • gnu-agent内存caching :另一个客户端function。
  • fsfs性能增强和authz资源库authentication。 不错的function,但这些工作无论你使用的客户端的版本。

在所有这些function中,只有一个取决于服务器的版本是1.5或者更高(1.4版本已经过时了一段时间,1.8版本的更新function可以提高工作副本的性能,但是1.8版本的服务器并不你的客户端版本比你的服务器版本更受影响。

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

尝试这个:

 ssh your_user@your_server svnserve --version svnserve, version 1.3.1 (r19032) compiled May 8 2006, 07:38:44 

我希望它有帮助。

对于svn + sshconfiguration,使用ssh在主机上运行svnserve –version:

$ ssh user @ host svnserve –version

有必要在实际上作为服务器的机器上运行svnserve命令。

只需使用Web浏览器即可转到SVN地址。 检查源代码( Ctrl + U )。 那么你会发现在HTML代码中的东西:

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

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

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

对于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连接到您的Subversion服务器,并在HTTP标头中find版本号。

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

下面的命令行应该给你的版本号

  svn --version