[英]How to find my Subversion server version number?
我想知道我的服務器是否正在運行 Subversion 1.5。
我怎樣才能找到它?
也很高興知道我的 SVN 客戶端版本號。 svn help
沒有幫助。
注意:我不想要我的項目的修訂號等。這個問題是關於Subversion 軟件本身的。
要查找 subversion REPOSITORY 的版本,您可以:
如果沒有顯示,查看頁面源碼
<svn version="1.6.13 (r1002816)" href="http://subversion.tigris.org/">
現在對於顛覆客戶端:
svn --version
就足夠了
讓我們合並這些響應:
通過瀏覽器訪問服務器時,請參閱“由 Subversion 提供支持”這一行。
通過瀏覽器訪問存儲庫,然后查找嵌入在 HTML 源代碼中的版本字符串。 來自elviejo和jaredjacobs 的早期回答。 同樣,從 ?? 開始,使用瀏覽器的開發人員工具(通常是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'
Check out the current version in a FAQ:
http://code.google.com/p/support/wiki/SubversionFAQ#What_version_of_Subversion_do_you_use?
TBD
請編輯以完成此答案
svn --version
在服務器上: svnserve --version
如果是基於 svnserve 的配置(svn:// 和 svn+xxx://)。
(為了完整性)。
對於基於 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 界面:
那里應該有一個“SVN/1.7.4”字符串或類似的字符串。 同樣,這可能只有在您擁有上述“ServerTokens Full”時才有效。
確實沒有一種簡單的方法可以找出您的服務器正在運行的 Subversion 版本——除了進入服務器並親自查看。
然而,這可能不是你想象的那么大的問題。 Subversion 客戶端處理了大部分繁重的工作,並且大多數版本的 Subversion 客戶端可以與幾乎任何版本的服務器一起工作。
服務器版本真正對客戶端產生影響的最后一個版本是在添加合並跟蹤時從 1.4 版更改為 1.5 版。 合並跟蹤在 1.6 版中得到了很大改進,但這並沒有真正影響客戶端和服務器之間的交互。
讓我們看看 Subversion 1.8 的最新變化:
svn move
現在是一流的操作:Subversion 終於明白svn move
不是svn copy
和svn delete
。 但是,這是客戶端處理的事情,並不會真正影響服務器版本。svn merge --reintegrate
deprecated :同樣,只要服務器是 1.5 或更高版本,這不是問題。svn:global-ignores
和svn:auto-props
:唉! 我們真正想要的。 一種設置這兩個屬性而不依賴於 Subversion 配置文件本身的方法。 但是,這是一個僅限客戶端的問題,因此再次與您使用的服務器版本無關。在所有功能中,只有一個取決於服務器的版本為 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
命令行上的以下內容應為您提供版本號
svn --version
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.