[svn] 如何找到我的Subversion服務器版本號?


7 Answers

我們來合併這些回應:

對於REPOSITORY / SERVER(原始問題):

如果能夠訪問Subversion服務器:

  • 從Manuel的早期answer ,在SVN服務器上運行以下內容:

    svnadmin --version
    

如果HTTP / HTTPS訪問:

  • 通過瀏覽器訪問服務器時,請參閱“Subversion支持的”行。

  • 通過瀏覽器訪問存儲庫,然後查找嵌入在HTML源代碼中的版本字符串。 來自elviejo和jaredjacobs 早期回答 。 同樣,從??開始,使用瀏覽器的開發人員工具(通常是Ctrl + Shift + I )來閱讀完整響應。 這也是處理證書和授權的最簡單(非自動化)方式 - 您的瀏覽器為您提供幫助。

  • 從Christopher 的早期回答中檢查響應標籤(這些不在HTML源中顯示)

    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
Question

我想知道我的服務器是否運行Subversion 1.5。

我怎麼能找到這個?

也很高興知道我的SVN客戶端版本號。 svn help沒有幫助。

注意:我不想要我的項目的修訂號等。這個問題是關於Subversion軟件本身的。




以下是獲取SVN服務器版本的最簡單方法。 即使您的SVN存儲庫需要HTTPS HTTP可以工作。

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



用Firefox瀏覽存儲庫並用Firebug檢查元素。 在NET選項卡下,您可以檢查頁面的標題。 它會有這樣的東西:

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



您可以使用HTTP連接到您的Subversion服務器,並在HTTP標頭中找到版本號。




對於svn + ssh配置,使用ssh在主機上運行svnserve --version:

$ ssh user @ host svnserve --version

有必要在實際上充當服務器的機器上運行svnserve命令。




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



實際上並不是一個簡單的方法來找出你的服務器運行的Subversion版本 - 除了進入服務器並親自查看。

但是,這可能不像您想像的那麼大。 Subversion客戶端的工作很多,Subversion客戶端的大多數版本都可以使用幾乎任何版本的服務器。

服務器版本真正對客戶端產生影響的最後一個版本是在添加合併跟踪時從版本1.4更改為版本1.5。 合併跟踪在版本1.6中有了很大的改進,但這並不影響客戶端和服務器之間的交互。

我們來看看Subversion 1.8中的最新變化:

  • svn move現在是一流的操作 :Subversion終於明白了svn move不是svn copysvn delete 。 但是,這是客戶端處理的事情,並不會真正影響服務器版本。
  • svn merge --reintegrate deprecated :同樣,只要服務器版本為1.5或更高版本,這不是問題。
  • 屬性繼承 :這是另一個1.8版本的更新,但這可以與任何Subversion服務器一起使用 - 儘管運行1.8版本的Subversion服務器將為可繼承屬性提供更好的性能。
  • 兩個新的可繼承屬性 - svn:global-ignoressvn:auto-props :唉! 我們真正想要的。 一種設置這兩個屬性的方法,而不依賴於Subversion配置文件本身。 但是,這是一個僅限客戶端的問題,因此它與您使用的服務器的版本無關。
  • gnu-agent內存緩存 :另一個僅客戶端功能。
  • fsfs性能增強和authz庫內認證。 不錯的功能,但這些工作無論你使用的客戶端的版本。

在所有功能中,只有一個取決於服務器的版本是1.5或更高(1.4版已經過時了一段時間,1.8版的新功能將提高工作副本的性能,但服務器版本為1.8沒有必要,你的客戶端版本比你的服務器版本更受影響。

我知道這不是你想要的答案(沒有官方的方式來看服務器版本),但幸運的是服務器版本並沒有真正影響你。




命令行中的以下內容應為您提供版本號

   svn --version



Related



Tags

svn