svn svn使用 - 如何找到我的Subversion服務器版本號?




svn是什麼 download (14)

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

我怎麼能找到這個?

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

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


Answers

還有一個選擇:如果你有Firefox(我正在使用14.0.1)和一個SVN網頁界面:

  • 在回購頁面上打開Tools-> Web Developer-> Web Console
  • 刷新頁面
  • 點擊GET
  • 查看服務器:行中的響應頭部分

應該有一個“SVN / 1.7.4”字符串或類似的地方。 同樣,如果你有上面提到的“ServerTokens Full”,這可能只會起作用。


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

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

在服務器上: svnserve --version

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

(為了完整)。


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

$ ssh user @ host svnserve --version

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


實際上並不是一個簡單的方法來找出你的服務器運行的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沒有必要,你的客戶端版本比你的服務器版本更受影響。

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


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


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


我們來合併這些回應:

對於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

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

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

   svn --version

只需使用Web瀏覽器即可訪問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服務器。


SVN ignore易於在TortoiseSVN中管理。 打開TortoiseSVN並右鍵單擊文件菜單,然後選擇添加忽略列表。

這會將這些文件添加到svn:ignore屬性中。 當我們檢入這些文件時,那些與svn:ignore匹配的文件將被忽略並且不會提交。

在Visual Studio項目中,我們添加了以下文件來忽略:

bin obj
*.exe
*.dll
*.pdb
*.suo

我們正在成功使用此方法管理Comparetrap SVN上的源代碼





svn