Subversionサーバーのバージョン番号を確認するにはどうすればよいですか?


292

サーバーでSubversion 1.5が実行されているかどうかを知りたい。

どうすればそれを見つけることができますか?

また、SVNクライアントのバージョン番号を知っておくと便利です。svn help役に立っていません。

注:プロジェクトのリビジョン番号などは必要ありません。この質問は、Subversionソフトウェア自体に関するものです。

回答:


210

subversion REPOSITORYのバージョンを確認するには、次の方法があります。

  1. Web上のリポジトリを見ると、ページの下部に
    「Powered by Subversionバージョン1.5.2(r32768)」のようなメッセージが表示されます。
  2. コマンドラインから:<curl、grep onelinerをここに挿入>

表示されない場合は、ページのソースを表示します

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

次に、Subversion CLIENTの場合:

svn --version

十分であろう


31
これは、サーバーがこの情報を表示する場合にのみ機能し、Googleコードホスティングのような一部のサーバーでは表示されません。
Andrea Francia

3
それはサーバーのバージョンですか、それともリポジトリのバージョンですか?(それらは異なるAFAIKの場合があります)
GraemeF

7
また、応答ヘッダーを見て(たとえば、
firebug

6
CollabNetはバージョン番号も表示しません-目に見えるように、またはページのソースに表示されます。
TenLeftFingers 14

5
-1:この回答が完了するのを待機しています(「<curl、grep oneliner here>」プレースホルダーです)svn://。使用しているサーバーが-only であるため、それ以外の場合、回答は役に立ちませんでした。
Slipp D. Thompson、2015

133

これらの応答をマージしましょう:

REPOSITORY / SERVER(元の質問):

Subversionサーバーにアクセスできる場合:

  • Manuelによる以前の回答から、SVNサーバーで以下を実行します。

    svnadmin --version
    

HTTP / HTTPSアクセスの場合:

  • ブラウザ経由でサーバーにアクセスする場合は、「powered by Subversion」の行を参照してください。

  • ブラウザ経由でリポジトリにアクセスし、HTMLソースに埋め込まれたバージョン文字列を探します。elviejojaredjacobs による以前の回答から。同様に、??から、ブラウザーの開発者ツール(通常は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

この回答を完了するには編集してください

クライアントの場合(元の質問ではありません):

svn --version

この回答はsvnserve --version、サーバーで使用する必要があることは明らかではありません。クライアントで実行されている場合は、サーバーではなくクライアントのバージョン番号が表示されます。
クレイグマックイーン

これは良いコレクションです。「http / httpsアクセスからの完全な応答を読む」方法で作成しました。私の場合、応答ヘッダーに次の1行が表示されます。<Server: "Apache / 2.2.14(Unix)DAV / 2 SVN / 1.6.9 mod_ssl / 2.2.14 OpenSSL / 0.9.8a">
Tatera

誰かがVisual SVN Serverを使用している場合、HTMLソースの最初の数行(右クリック、ページソースの表示)はSVNバージョンを示します。
ラプター2016年

この答えはMetaで議論されています。
Glorfindel

70

サーバー上: svnserve --version

svnserveベースの構成の場合(svn://およびsvn + xxx://)。

(完全を期すため)。


Joe Jが以下で言及しているように、これは、svnserveクライアントプログラムのバージョンと一致する可能性が最も高いsvnserveクライアントプログラムのバージョンを提供すると信じています
Kirby

12
svnserveクライアントプログラムではなく、サーバーです。そして、サーバーにいるときは、上記のコマンドを入力する必要があります。
Milen A. Radev、2011年

48

SVNサーバーのバージョンを取得する最も簡単な方法は次のとおりです。SVNリポジトリにHTTPSが必要な場合でも、HTTPは機能します

$ curl -X OPTIONS http:// my-svn-domain /
<!DOCTYPE HTML PUBLIC "-// IETF // DTD HTML 2.0 // EN">
<html> <head> ... </ head>
<ボディ> ...
<address> Apache / 2.2.11(Debian)DAV / 2 SVN / 1.5.6 PHP / 5.2.9-4 ... </ address>
</ body> 
</ html>

1
これは私が必要としたものです。投票してください!
ベントフォード2009年


24

HTTPベースのサーバーの場合、サーバーのバージョンを見つけるためのPythonスクリプトがあります:http : //svn.apache.org/repos/asf/subversion/trunk/tools/client-side/server-version.py

あなたはクライアントバージョンを得ることができます

`svn --version`

5
私が間違っていない限り、そのスクリプトはhttpまたはhttpsベースのサーバーでのみ機能し、svnまたはssh + svnサーバーでは機能しないようです
crashmstr

sshベースの場合は、sshをボックスに入力して「svn --version」を実行します。
John Meagher、

5
サーバーの 'svn --version'はサーバーで実行されているクライアントのバージョンのみを提供します。必ずしもサーバーのバージョンと同じであるとは限りません
PiedPiper

1
このスクリプトでは、ApacheサーバーでServerTokens Fullを設定する必要もあります。curlソリューションが失敗するのと同じサーバーでは失敗します。
yam655

24

SubversionサーバーのバージョンがHTMLリストに印刷されていない場合は、サーバーから返されたHTTP RESPONSEヘッダーで利用できます。このシェルコマンドを使用して取得できます。

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

4
私はこのページの他のすべてのオプションを試し、curlとURLを使用しました。これまでのところ、これが私にとって有効な唯一のオプションです。サーバーはfreebsd、サーバー1.6.16です。
ideasman42

同様に、これがここでのすべての答えの中で私にとってうまくいった唯一の答えです。私はFirefox Live HTTPヘッダーを使用し、サーバーの応答を読み取るために使用しました。これは、問題を解決するために行くつもりのない、ssl証明書の問題も抱えていたためです。ありがとう、クリストファー
カービー

1
私が追加した@Kirby --no-check--certificate、パラメータを--userして--password資格情報を必要とするが、有効なSSH証明書を持っていないハンドルサーバに。ご指摘のとおり、これはかなり一般的です。
クリストファー

1
@Christopherは '' wget --password = 'password' ..を読む必要があります。..; ' 上記。
whaefelinger 2016年

@whaefelinger訂正ありがとうございます。答えを更新しました。
クリストファー

8

もう1つのオプション:Firefox(私は14.0.1を使用しています)とSVN Webインターフェイスがある場合:

  • リポジトリページで[ ツール]-> [Web開発者]-> [Webコンソール]を開きます。
  • ページの更新
  • GET行をクリックします
  • Server:行のResponse Headersセクションを見てください

「SVN / 1.7.4」などの文字列がそこにあるはずです。繰り返しますが、これはおそらく、上記の「ServerTokens Full」がある場合にのみ機能します。


ありがとう。私はVisualSVNサーバー用のChromeで同様のことをしました。開発者ツールウィンドウの[ネットワーク]タブを開き(F12キーを押してアクセスします)、応答を調べます。
XåpplI'-I0llwlg'I -

更新:ページを更新する前に、[ツール]ペインの[ネットワーク]タブをクリックします(現在はFirefox 30)
Conrad

7

サーバーが実行しているSubversionのバージョンを簡単に確認する方法はありません-サーバーにアクセスして自分で確認する以外に方法はありません。

しかし、これはあなたが考えるほど大きな問題ではないかもしれません。Subversionクライアントは、面倒な作業の多くが処理され、ほとんどのバージョンのSubversionクライアントは、ほぼすべてのバージョンのサーバーで動作します。

サーバーバージョンが実際にクライアントに影響を与えた最後のリリースは、マージ追跡が追加されたときのリリース1.4からリリース1.5への変更です。マージ追跡はバージョン1.6で大幅に改善されましたが、クライアントとサーバー間の相互作用には実際には影響しません。

Subversion 1.8の最新の変更を見てみましょう:

  • svn move今ファーストクラスの操作です:Subversionはようやく理解しsvn moveないsvn copysvn delete。ただし、これはクライアントが処理するものであり、サーバーのバージョンには実際には影響しません。
  • svn merge --reintegrate非推奨:繰り返しますが、サーバーのバージョンが1.5以上である限り、これは問題になりません。
  • プロパティの継承:これは別の1.8リリースアップデートですが、これは任意のSubversionサーバーで機能します。ただし、1.8を実行しているSubversionサーバーは、継承可能なプロパティのパフォーマンスが向上します。
  • 2つの新しい継承可能なプロパティ- svn:global-ignoressvn:auto-props:残念ながら!私たちが本当に欲しかったもの。Subversion設定ファイル自体に依存せずにこれら2つのプロパティを設定する方法。ただし、これはクライアントのみの問題であるため、使用しているサーバーのバージョンは問題ではありません。
  • gnu-agentメモリキャッシング:クライアント専用のもう1つの機能。
  • fsfsパフォーマンスの強化とauthzリポジトリ内認証。優れた機能ですが、使用しているクライアントのバージョンに関係なく機能します。

すべての機能のうち、1つだけがサーバーのバージョン1.5以降に依存します(1.4はかなり古くなっています。1.8の新しい機能により作業コピーのパフォーマンスが向上しますが、リビジョン1.8のサーバーは必要ありません。サーバーのバージョンよりもクライアントのバージョンの影響を大きく受けます。

私はこれがあなたが望んだ答えではないことを知っています(サーバーバージョンを確認する公式な方法はありません)。


7

これを試して:

ssh your_user@your_server svnserve --version

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

お役に立てば幸いです。


4

svn + ssh構成の場合、sshを使用してホストマシンでsvnserve --versionを実行します。

$ ssh user @ host svnserve --version

実際にサーバーとして機能しているマシンでsvnserveコマンドを実行する必要があります。


1
これは、サーバーにsshできることを前提としています。authorized_keysファイルの公開鍵と--versionオプションなしでsvnserverを自動的に起動するcommand = svnserveを使用してsvn + sshサーバーを構成するのが一般的です。
jrwren 2012年

2

Webブラウザを使用して、SVNアドレスに移動するだけです。ソースコード(Ctrl+ U)を確認します。次に、HTMLコードのようなものが見つかります。

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

2

Firefoxでリポジトリを参照し、Firebugで要素を調べます。[NET]タブで、ページのヘッダーを確認できます。それは次のようなものになります:

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

1
私のsubversionサーバーでこれを試してみましたが、バージョンが表示されません。同様のその他の投稿を見ると、すべてのSubversionサーバーがサーバーのバージョン番号を特定するこの特定の方法をサポートしているわけではないようです。
ジョシュア

1

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サーバーでも機能することに注意してください。


1

HTTPを使用してSubversionサーバーに接続し、HTTPヘッダーでバージョン番号を確認できます。


0

VisualSVNサーバーを使用している場合は、いくつかの方法でバージョン番号を確認できます。

VisualSVN Server Managerを使用する

次の手順に従って、管理コンソールからバージョンを確認します。

  1. 起動しVisualSVNサーバーマネージャコンソールを。
  2. ダッシュボードの右下隅にあるバージョンを確認してください。

ここに画像の説明を入力してください

[ バージョン ]をクリックすると、コンポーネントのバージョンも表示されます。

ここに画像の説明を入力してください

README.txtファイルを確認する

次の手順に従って、readme.txtファイルからバージョンを確認します。

  1. notepad.exeを起動します。
  2. %VISUALSVN_SERVER%README.txtファイルを開きます。最初の行はバージョン番号を示します。

ここに画像の説明を入力してください


-1

コマンドラインで次のようにすると、バージョン番号が表示されます

   svn --version

11
これはクライアントのバージョンのみを提供します(サーバーで実行しない限り)。(それでも、サーバーのsvnクライアントは、svnサーバーと同じバージョンであるとは限りませんが、同じバージョンである可能性が高いです。)
cjm

12
-1これは、サーバー番号に関係のないSubversionクライアント番号のみを提供します。
Andrea Francia

2
これはクライアント用です。サーバのバージョンのsvnserveの--version用
ラジェッシュ

1
svn help2つのダッシュで始まるパラメータがリストされていなかったため、役に立ちませんでした。私のSVNバージョンを探しているときにGoogle経由であなたの投稿を見つけました。
BernhardDöbler2016年

-1

管理者が「svnadmin upgrade」を実行しない限り、リポジトリは自動的に更新されません。リポジトリのバージョン番号を確認するには、「フォーマット」ファイルを確認してください。@bdumitriuのコメントを参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.