簡體   English   中英

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

[英]How to find my Subversion server version number?

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

我怎樣才能找到它?

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

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

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

  1. 查看網絡上的存儲庫,在頁面底部,它會顯示如下內容:
    “由 Subversion 版本 1.5.2 (r32768) 提供支持。”
  2. 從命令行:<insert curl, grep oneliner here>

如果沒有顯示,查看頁面源碼

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

現在對於顛覆客戶端:

svn --version

就足夠了

讓我們合並這些響應:

對於存儲庫/服務器(原始問題):

如果能夠訪問 Subversion 服務器:

  • Manuel較早的回答中,在 SVN 服務器上運行以下命令:

     svnadmin --version

如果 HTTP/HTTPS 訪問:

  • 通過瀏覽器訪問服務器時,請參閱“由 Subversion 提供支持”這一行。

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

  • 檢查響應標簽(這些未顯示在 HTML 源代碼中),來自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

請編輯以完成此答案

對於客戶(不是原始問題):

svn --version

在服務器上: svnserve --version

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

(為了完整性)。

這是獲取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>

對於基於 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';

還有一種選擇:如果您有 Firefox(我使用的是 14.0.1)和一個 SVN Web 界面:

  • 在 repo 頁面上打開Tools->Web Developer->Web Console
  • 刷新頁面
  • 單擊GET
  • 查看Server:行的Response Headers部分

那里應該有一個“SVN/1.7.4”字符串或類似的字符串。 同樣,這可能只有在您擁有上述“ServerTokens Full”時才有效。

確實沒有一種簡單的方法可以找出您的服務器正在運行的 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 的服務器不是沒有必要。與服務器版本相比,客戶端版本對您的影響要大得多。

我知道這不是您想要的答案(沒有查看服務器版本的官方方法),但幸運的是,服務器版本對您的影響並不大。

試試這個:

ssh your_user@your_server svnserve --version

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

我希望它有幫助。

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

$ ssh user@host svnserve --version

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

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

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

只需使用網絡瀏覽器轉到 SVN 地址即可。 檢查源代碼( Ctrl + U )。 然后你會在 HTML 代碼中找到類似的東西:

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

對於 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 標頭中找到版本號。

除非管理員運行“ svnadmin upgrade”,否則不會自動更新存儲庫。 要確定存儲庫的版本號,請檢查“格式”文件。 參見@bdumitriu的評論

轉到存儲庫文件夾並輸入

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

如果您使用 VisualSVN Server,您可以通過幾種不同的方式找到版本號。

使用 VisualSVN 服務器管理器

按照以下步驟通過管理控制台查找版本:

  1. 啟動VisualSVN 服務器管理器控制台。
  2. 查看儀表板右下角的版本

在此處輸入圖片說明

如果單擊版本,您還將看到組件的版本。

在此處輸入圖片說明

檢查 README.txt 文件

按照以下步驟從 readme.txt 文件中找出版本:

  1. 啟動記事本.exe
  2. 打開%VISUALSVN_SERVER%README.txt文件。 第一行顯示版本號。

在此處輸入圖片說明

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

   svn --version

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM