Subversion 서버 버전 번호를 찾는 방법은 무엇입니까?


292

서버에서 Subversion 1.5를 실행하고 있는지 알고 싶습니다.

어떻게 알 수 있습니까?

또한 내 SVN 클라이언트 버전 번호를 알고 있으면 좋을 것입니다. svn help도움이되지 않았습니다.

참고 : 프로젝트의 개정 번호 등을 원하지 않습니다 .이 질문은 Subversion 소프트웨어 자체에 관한 것입니다.

답변:


210

Subversion REPOSITORY의 버전을 찾으려면 다음을 수행 할 수 있습니다.

  1. 웹 및 페이지 하단의 저장소를 보면
    "Powered by Subversion 버전 1.5.2 (r32768)" 와 같이 표시 됩니다.
  2. 커맨드 라인에서 : <컬을 삽입하고, 여기에 하나의 라이너를 바르십시오>

표시되지 않으면 페이지의 소스를보십시오

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

이제 서브 버전 CLIENT의 경우 :

svn --version

충분할 것이다


31
이것은 서버 가이 정보를 표시하는 경우에만 작동하며 Google 코드 호스팅과 같은 일부 서버는 그렇지 않습니다.
Andrea Francia

3
서버 버전입니까 아니면 저장소 버전입니까? (그들은 다른 AFAIK가 될 수 있습니다)
GraemeF

7
응답 헤더 (예 : firebug / net view 사용)를보고 SVN 버전을 찾을 수 있습니다.
haknick

6
CollabNet은 버전 번호를 표시하지 않거나 페이지 소스에 표시하지 않습니다.
TenLeftFingers

5
-1 :이 응답이 완료되기를 기다리는 중입니다 (“<curl curl, grep oneliner here>”자리 표시 자). 사용중인 서버가 -only이므로 응답이 유용하지 않았습니다 svn://.
슬립 D. 톰슨

133

이 응답들을 병합합시다 :

REPOSITORY / SERVER의 경우 (원래 질문) :

Subversion 서버에 액세스 할 수있는 경우 :

  • 이전부터 대답 에 의해 마누엘 ,하여 SVN 서버에서 다음을 실행합니다 :

    svnadmin --version
    

HTTP / HTTPS에 액세스하는 경우 :

  • 브라우저를 통해 서버에 액세스 할 때는 "Powered by Subversion"라인을 참조하십시오.

  • 브라우저를 통해 저장소에 액세스 한 후 HTML 소스에 임베드 된 버전 문자열을 찾으십시오. elviejojaredjacobs의 이전 답변 에서 . 마찬가지로 ??에서 브라우저의 개발자 도구 (일반적으로 Ctrl+ Shift+ I)를 사용하여 전체 응답을 읽습니다. 이것은 인증서 및 인증을 처리하는 가장 쉬운 (자동화되지 않은) 방법이기도합니다. 브라우저가이를 수행합니다.

  • 에서, 응답 태그 (다음은 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서버에서 사용해야 한다는 것은 분명하지 않습니다 . 클라이언트에서 실행되는 경우 서버가 아닌 클라이언트의 버전 번호를 제공합니다.
Craig McQueen

이것은 좋은 컬렉션입니다. "http / https 액세스에서 전체 응답을 읽으십시오"라는 방식으로 작성했습니다. 필자의 경우 응답 헤더에서 한 줄을 볼 수 있습니다. <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 버전을 나타냅니다.
랩터


70

서버에서 : svnserve --version

svnserve 기반 구성의 경우 (svn : // 및 svn + xxx : //).

(완전성을 위해).


조 J 아래에 언급, 나는이 당신에게 가장 가능성이 SVN 클라이언트 프로그램과 일치하는 것 또는 svnserve 클라이언트 프로그램의 버전을 줄 것으로 예상
커비

12
svnserve클라이언트 프로그램이 아니라 서버입니다. 그리고 서버에있을 때 위의 명령을 입력해야합니다.
Milen A. Radev

48

SVN 서버 버전을 얻는 가장 간단한 방법은 다음과 같습니다. SVN 저장소에 HTTPS 가 필요한 경우에도 HTTP가 작동합니다 .

$ curl -X 옵션 http : // my-svn-domain /
<! DOCTYPE HTML PUBLIC "-// IETF // DTD HTML 2.0 // EN">
<html> <head> ... </ head>
<본문> ...
<address> 아파치 /2.2.11 (데비안) DAV / 2 SVN / 1.5.6 PHP / 5.2.9-4 ... </ address>
</ body> 
</ html>

1
이것이 내가 필요한 것입니다. 투표 해주세요!
bentford

8
"ServerTokens Full"( httpd.apache.org/docs/2.2/mod/core.html#servertokens ) 인 경우에만 작동합니다 .
Milen A. Radev

24

HTTP 기반 서버의 경우 http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/server-version.py에 서버 버전을 찾는 Python 스크립트가 있습니다 .

당신은 클라이언트 버전을 얻을 수 있습니다

`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
컬과 URL을 사용 하여이 페이지의 다른 모든 옵션을 시도했지만 이것이 지금까지 유일한 방법입니다-서버는 freebsd, 서버 1.6.16입니다.
ideasman42

마찬가지로 이것은 여기의 모든 답변 중 나를 위해 일한 유일한 답변입니다. Firefox Live HTTP 헤더를 사용하고 서버의 응답을 읽는데도 문제가 있다고 생각하지 않는 SSL 인증서 문제가 있었기 때문에. 감사합니다, Christopher
Kirby

1
내가 추가 한 @Kirby --no-check--certificate매개 변수, --user--password자격 증명이 필요하지만 유효한 SSH 인증서가없는 핸들 서버를. 당신이 지적한 것처럼 이것은 매우 일반적입니다.
Christopher

1
@Christopher ''wget --password = 'password'를 읽어야합니다. | ..; ' 위.
whaefelinger

@whaefelinger 수정 해 주셔서 감사합니다. 답변을 업데이트했습니다.
Christopher

8

또 다른 옵션 : Firefox (14.0.1을 사용하고 있습니다)와 SVN 웹 인터페이스가있는 경우 :

  • 열기 도구 -> 웹 현상 제> 웹 콘솔 의 repo 페이지
  • 페이지 새로 고침
  • GET 라인을 클릭하십시오
  • 찾는 위치 응답 헤더의 상기 섹션 서버 : 라인

"SVN / 1.7.4"문자열 또는 이와 유사한 문자열이 있어야합니다. 다시 말하지만, 위에서 언급 한 "ServerTokens Full"이있는 경우에만 작동합니다.


감사. 방금 개발자 도구 창의 네트워크 탭을 열고 (F12 키를 눌러 액세스) VisualSVN 서버의 Chrome에서 비슷한 작업을 수행 한 다음 응답을 검사합니다.
XåpplI'-I0llwlg'I-

업데이트 : 페이지를 새로 고치기 전에 도구 창에서 네트워크 탭을 클릭하십시오 (현재 Firefox 30)
Conrad

7

실제로 서버에 접속하여 직접 확인하는 것 외에는 서버에서 실행중인 Subversion 버전을 쉽게 찾을 수있는 방법 이 없습니다 .

그러나 이것은 생각만큼 큰 문제가 아닐 수 있습니다. Subversion 클라이언트는 많은 작업이 처리되었으며 대부분의 Subversion 클라이언트는 거의 모든 버전의 서버에서 작동 할 수 있습니다.

서버 버전이 실제로 클라이언트와 차별화 된 마지막 릴리스는 병합 추적이 추가 될 때 릴리스 1.4에서 릴리스 1.5로 변경되었습니다. 병합 추적은 버전 1.6에서 크게 개선되었지만 클라이언트와 서버 간의 상호 작용에는 실제로 영향을 미치지 않습니다.

Subversion 1.8의 최신 변경 사항을 살펴 보겠습니다.

  • svn move이제는 일류 작업입니다 . Subversion은 svn moveis svn copy및 a가 아니라는 것을 마침내 이해합니다 svn delete. 그러나 이것은 클라이언트가 처리하며 실제로 서버 버전에 영향을 미치지 않습니다.
  • svn merge --reintegrate더 이상 사용되지 않음 : 서버의 버전이 1.5 이상이면 문제가되지 않습니다.
  • 속성 상속 : 이것은 또 다른 1.8 릴리스 업데이트이지만 모든 Subversion 서버에서 작동하지만 1.8을 실행하는 Subversion 서버는 상속 가능한 속성에서 더 나은 성능을 제공합니다.
  • 상속 가능한 두 가지 속성- svn:global-ignores그리고svn:auto-props : 아아! 우리가 정말로 원했던 것. Subversion 구성 파일 자체에 의존하지 않고이 두 속성을 설정하는 방법. 그러나 이것은 클라이언트 전용 문제이므로 사용중인 서버의 버전이 중요하지 않습니다.
  • gnu-agent 메모리 캐싱 : 다른 클라이언트 전용 기능.
  • fsfs 성능 향상 및 authz 리포지토리 인증. 멋진 기능이지만 사용중인 클라이언트 버전에 관계없이 작동합니다.

모든 기능 중 하나만 서버 버전 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-버전

실제로 서버 역할을하는 시스템에서 svnserve 명령을 실행해야합니다.


1
이것은 서버로 ssh 할 수 있다고 가정합니다. authorized_keys 파일의 공개 키와 --version 옵션없이 svnserver를 자동으로 시작하는 command = svnserve를 사용하여 svn + ssh 서버를 구성하는 것이 일반적입니다.
jrwren

2

웹 브라우저를 사용하여 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
내 서브 버전 서버로 시도했지만 버전이 보이지 않습니다. 비슷한 다른 게시물을 보면 모든 하위 버전 서버가 서버 버전 번호를 결정하는 특정 방법을 지원하지는 않는 것 같습니다.
Joshua

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 Server를 사용하는 경우 몇 가지 다른 방법으로 버전 번호를 찾을 수 있습니다.

VisualSVN 서버 관리자 사용

다음 단계에 따라 관리 콘솔을 통해 버전을 찾으십시오.

  1. VisualSVN Server Manager 콘솔을 시작하십시오 .
  2. 대시 보드의 오른쪽 하단에 있는 버전 을 참조하십시오 .

여기에 이미지 설명을 입력하십시오

버전 을 클릭 하면 구성 요소의 버전도 표시됩니다.

여기에 이미지 설명을 입력하십시오

README.txt 파일을 확인하십시오

readme.txt 파일에서 버전을 찾으려면 다음 단계를 수행하십시오.

  1. notepad.exe를 시작하십시오 .
  2. 오픈 %의 VISUALSVN_SERVER %의 README.txt 파일의 파일을. 첫 번째 줄에는 버전 번호가 표시됩니다.

여기에 이미지 설명을 입력하십시오


-1

명령 행에서 다음은 버전 번호를 제공해야합니다.

   svn --version

11
서버에서 실행하지 않는 한 클라이언트 버전 만 제공합니다. (그리고 심지어 서버의 svn 클라이언트는 svn 서버와 반드시 동일한 버전 일 필요는 없지만 가장 가능성이 높습니다.)
cjm

12
-1 서버 번호와 관련이없는 서브 버전 클라이언트 번호 만 제공합니다.
Andrea Francia

2
이것은 클라이언트를위한 것입니다. 서버 버전 svnserve --version
Rajesh

1
svn help두 개의 대시로 시작하는 매개 변수를 나열하지 않았으므로 도움이되지 않았습니다. 내 svn 버전을 찾을 때 Google을 통해 게시물을 찾았습니다.
Bernhard Döbler

-1

관리자가 'svnadmin upgrade'를 실행하지 않으면 저장소가 자동으로 업데이트되지 않습니다. 저장소의 버전 번호를 확인하려면 '형식'파일을 확인하십시오. @bdumitriu의 의견을 참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.