Làm cách nào để tìm số phiên bản máy chủ Subversion của tôi?


292

Tôi muốn biết nếu máy chủ của tôi đang chạy Subversion 1.5.

Làm thế nào tôi có thể tìm ra điều đó?

Cũng rất vui khi biết số phiên bản máy khách SVN của tôi. svn helpkhông hữu ích

Lưu ý: Tôi không muốn số sửa đổi dự án của mình , v.v. Câu hỏi này là về chính phần mềm Subversion .

Câu trả lời:


210

Để tìm phiên bản REPOSITORY lật đổ, bạn có thể:

  1. Nhìn vào kho lưu trữ trên web và ở dưới cùng của trang, nó sẽ nói một cái gì đó như:
    "Được cung cấp bởi Subversion phiên bản 1.5.2 (r32768)."
  2. Từ dòng lệnh: <insert curl, grep oneliner here>

Nếu không được hiển thị, xem nguồn của trang

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

Bây giờ cho CLIENT lật đổ:

svn --version

sẽ đủ


31
Điều này chỉ hoạt động nếu máy chủ sẽ hiển thị thông tin này, một số máy chủ như lưu trữ mã google thì không.
Andrea Francia

3
Đó là phiên bản máy chủ, hay phiên bản kho lưu trữ? (chúng có thể khác AFAIK)
GraemeF

7
Bạn cũng có thể xem các tiêu đề phản hồi (ví dụ: sử dụng chế độ xem
firebird

6
CollabNet cũng không hiển thị số phiên bản - rõ ràng hoặc trong nguồn của trang.
TenLeftFingers

5
-1: Chờ câu trả lời này kết thúc (phần mềm <insert curl, grep oneliner tại đây> Giữ chỗ.) Câu trả lời không hữu ích cho tôi, vì máy chủ tôi đang sử dụng là svn://-only.
Slipp D. Thompson

133

Hãy hợp nhất các câu trả lời sau:

Đối với REPOSITORY / SERVER (câu hỏi ban đầu):

Nếu có thể truy cập máy chủ Subversion:

  • Từ câu trả lời trước đó của Manuel , hãy chạy như sau trên máy chủ SVN:

    svnadmin --version
    

Nếu truy cập HTTP / HTTPS:

  • Xem dòng "được cung cấp bởi Subversion" khi truy cập máy chủ thông qua trình duyệt.

  • Truy cập kho lưu trữ thông qua trình duyệt và sau đó tìm chuỗi phiên bản được nhúng trong nguồn HTML. Từ câu trả lời trước đó của elviejojaredjacobs . Tương tự, từ ??, sử dụng các công cụ dành cho nhà phát triển của trình duyệt (thường là Ctrl+ Shift+ I) để đọc toàn bộ phản hồi. Đây cũng là cách dễ nhất (không tự động) để xử lý chứng chỉ và ủy quyền - trình duyệt của bạn thực hiện điều đó cho bạn.

  • Kiểm tra các thẻ phản hồi (những thẻ này không được hiển thị trong nguồn HTML), từ câu trả lời trước đó của Christopher

    wget -S --spider 'http://svn.server.net/svn/repository' 2>&1 |
    sed -n '/SVN/s/.*\(SVN[0-9\/\.]*\).*/\1/p'
    

Nếu svn: // hoặc ssh + svn truy cập

Nếu máy chủ 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?

Nếu một máy chủ SVN tùy chỉnh khác

    TBD

Vui lòng chỉnh sửa để hoàn thành câu trả lời này

Đối với KHÁCH HÀNG (không phải câu hỏi ban đầu):

svn --version

Câu trả lời này không rõ ràng mà svnserve --versionphải được sử dụng trên máy chủ. Nếu nó chạy trên máy khách, nó cung cấp số phiên bản của máy khách, không phải máy chủ.
Craig McQueen

Đây là một bộ sưu tập tốt. Tôi đã thực hiện bằng cách "đọc phản hồi đầy đủ từ truy cập http / https". Trong trường hợp của tôi, tôi có thể thấy một dòng trong tiêu đề phản hồi: <Máy chủ: "Apache / 2.2.14 (Unix) DAV / 2 SVN / 1.6.9 mod_ssl / 2.2.14 OpenSSL / 0.9.8a">
Tatera

Trong trường hợp ai đó đang sử dụng Visual SVN Server, một vài dòng nguồn HTML đầu tiên (nhấp chuột phải, xem Nguồn trang) sẽ chỉ ra phiên bản SVN.
Raptor


70

Trên máy chủ: svnserve --version

trong trường hợp cấu hình dựa trên svnserve (svn: // và svn + xxx: //).

(Để hoàn thiện).


Như Joe J đề cập dưới đây, tôi tin rằng điều này sẽ cung cấp cho bạn phiên bản của chương trình khách hàng svnserve rất có thể sẽ phù hợp với chương trình khách hàng svn
Kirby

12
svnservekhông phải là một chương trình máy khách, nó là máy chủ. Và bạn phải gõ lệnh trên khi bạn đang ở trên máy chủ.
Milen A. Radev

48

Đây là cách đơn giản nhất để có phiên bản máy chủ SVN. HTTP hoạt động ngay cả khi kho SVN của bạn yêu cầu HTTPS .

$ curl -X TÙY CHỌN http: // my-svn-domain /
<! DOCTYPE HTML CÔNG CỘNG "- // IETF // DTD HTML 2.0 // EN">
<html> <đầu> ... </ đầu>
<cơ thể> ...
<địa chỉ> Apache / 2.2.11 (Debian) DAV / 2 SVN / 1.5.6 PHP / 5.2.9-4 ... </ address>
</ cơ thể> 
</ html>

1
Đây là những gì tôi cần. Hãy bình chọn!
bentford

8
Chỉ hoạt động khi "ServerTokens Full" ( httpd.apache.org/docs/2.2/mod/core.html#servertokens ).
Milen A. Radev

24

Đối với máy chủ dựa trên HTTP, có tập lệnh Python để tìm phiên bản máy chủ tại: http://svn.apache.org/repose/asf/subversion/trunk/tools/client-side/server-version.py

Bạn có thể lấy phiên bản máy khách với

`svn --version`

5
Trừ khi tôi nhầm, có vẻ như tập lệnh đó chỉ hoạt động với các máy chủ dựa trên http hoặc https chứ không phải máy chủ svn hoặc ssh + svn
crashmstr

Nếu nó dựa trên ssh, chỉ cần ssh vào hộp và chạy "svn --version".
John Meagher

5
'svn --version' trên máy chủ chỉ cung cấp cho bạn phiên bản máy khách đang chạy trên máy chủ, nó có thể không nhất thiết phải giống với phiên bản máy chủ
PiedPiper

1
Kịch bản đó cũng yêu cầu ServerTokens Full được đặt trên máy chủ Apache. Nó sẽ thất bại cho cùng một máy chủ mà giải pháp curl sẽ thất bại.
yam655

24

Nếu phiên bản máy chủ Subversion không được in trong danh sách HTML, thì nó có sẵn trong tiêu đề HTTP RESPONSE được máy chủ trả về. Bạn có thể lấy nó bằng lệnh shell này

wget -S --no-check-certificate \
  --spider 'http://svn.server.net/svn/repository' 2>&1 \
  | sed -n '/SVN/s/.*\(SVN[0-9\/\.]*\).*/\1/p';

Nếu máy chủ SVN yêu cầu bạn cung cấp tên người dùng và mật khẩu, sau đó thêm các wgettham số --user--passwordvào lệnh như thế này

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
Tôi đã thử tất cả các tùy chọn khác trên trang này, với curl và từ URL và đây là cái duy nhất phù hợp với tôi - máy chủ là freebsd, máy chủ 1.6.16.
ideaman42

Tương tự như vậy, đây là câu trả lời duy nhất phù hợp với tôi trong số tất cả các câu trả lời ở đây. Tôi đã sử dụng Firefox Live HTTP Headers và để đọc phản hồi của máy chủ vì tôi cũng gặp vấn đề về chứng chỉ ssl mà tôi không cảm thấy muốn gặp rắc rối. Cảm ơn bạn, Christopher
Kirby

1
@Kirby Tôi đã thêm một --no-check--certificatetham số, a --user--passwordđể xử lý các máy chủ yêu cầu thông tin xác thực nhưng không có chứng chỉ ssh hợp lệ. Điều này là khá phổ biến như bạn lưu ý.
Christopher

1
@Christopher nó nên đọc '' wget --password = 'password' .. | ..; ' ở trên.
whaefelinger

@whaefelinger cảm ơn vì đã sửa. Tôi đã cập nhật câu trả lời.
Christopher

8

Thêm một tùy chọn: Nếu bạn có Firefox (Tôi đang sử dụng 14.0.1) và giao diện web SVN:

  • Mở công cụ-> Nhà phát triển web-> Bảng điều khiển web trên trang repo
  • Làm mới trang
  • Nhấp vào dòng GET
  • Xem trong phần Tiêu đề phản hồi tại Máy chủ: dòng

Cần có một chuỗi "SVN / 1.7.4" hoặc tương tự ở đó. Một lần nữa, điều này có thể sẽ chỉ hoạt động nếu bạn có "ServerTokens Full" như đã đề cập ở trên.


Cảm ơn. Tôi vừa thực hiện một điều tương tự trong Chrome cho máy chủ VisualSVN bằng cách mở tab Mạng trong cửa sổ Công cụ dành cho nhà phát triển (nhấn F12 để truy cập phần này), sau đó kiểm tra phản hồi.
XåpplI'-I0llwlg'I -

Cập nhật: nhấp vào tab Mạng trong ngăn Công cụ trước khi làm mới trang (hiện là Firefox 30)
Conrad

7

Thực sự không có cách nào dễ dàng để tìm ra phiên bản Subversion mà máy chủ của bạn đang chạy - ngoại trừ việc tự mình truy cập vào máy chủ.

Tuy nhiên, điều này có thể không phải là một vấn đề lớn như bạn nghĩ. Các máy khách Subversion là phần lớn công việc khó khăn được xử lý và hầu hết các phiên bản của máy khách Subversion có thể hoạt động với hầu hết mọi phiên bản của máy chủ.

Bản phát hành cuối cùng trong đó phiên bản máy chủ thực sự tạo ra sự khác biệt cho máy khách là sự thay đổi từ bản phát hành 1.4 sang bản phát hành 1.5 khi theo dõi hợp nhất được thêm vào. Theo dõi hợp nhất đã được cải thiện rất nhiều trong phiên bản 1.6, nhưng điều đó không thực sự ảnh hưởng đến các tương tác giữa máy khách và máy chủ.

Hãy thực hiện những thay đổi mới nhất trong Subversion 1.8:

  • svn movebây giờ là một hoạt động hạng nhất : Subversion cuối cùng hiểu svn movekhông phải là một svn copysvn delete. Tuy nhiên, đây là điều mà khách hàng xử lý và không thực sự ảnh hưởng đến phiên bản máy chủ.
  • svn merge --reintegratekhông dùng nữa : Một lần nữa, miễn là máy chủ ở phiên bản 1.5 trở lên thì đây không phải là vấn đề.
  • Kế thừa tài sản : Đây là một bản cập nhật phát hành 1.8 khác, nhưng nó sẽ hoạt động với bất kỳ máy chủ Subversion nào - mặc dù các máy chủ Subversion chạy 1.8 sẽ cung cấp hiệu suất tốt hơn trên các thuộc tính kế thừa.
  • Hai thuộc tính kế thừa mới - svn:global-ignoressvn:auto-props : Than ôi! Những gì chúng tôi thực sự muốn. Một cách để thiết lập hai thuộc tính này mà không phụ thuộc vào chính tệp cấu hình Subversion. Tuy nhiên, đây là sự cố chỉ dành cho khách hàng, do đó, một lần nữa không quan trọng bạn đang sử dụng phiên bản máy chủ nào.
  • bộ nhớ đệm bộ nhớ tác nhân gnu : Một tính năng khác chỉ dành cho khách hàng.
  • cải tiến hiệu suất fsfs và xác thực trong kho lưu trữ tự động. Các tính năng đẹp, nhưng chúng hoạt động cho dù bạn đang sử dụng phiên bản nào của máy khách.

Trong tất cả các tính năng, chỉ có một tính năng phụ thuộc vào phiên bản của máy chủ là 1,5 hoặc cao hơn (và 1.4 đã bị lỗi thời trong một thời gian. Các tính năng mới hơn của 1.8 sẽ cải thiện hiệu suất của bản sao làm việc của bạn, nhưng máy chủ đang ở phiên bản 1.8 không Không cần thiết. Bạn bị ảnh hưởng nhiều hơn bởi phiên bản máy khách của bạn so với phiên bản máy chủ của bạn.

Tôi biết đây không phải là câu trả lời bạn muốn (không có cách chính thức để xem phiên bản máy chủ), nhưng may mắn là phiên bản máy chủ không thực sự ảnh hưởng đến bạn nhiều như vậy.


7

Thử cái này:

ssh your_user@your_server svnserve --version

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

Tôi hy vọng nó sẽ giúp.


4

Đối với cấu hình svn + ssh, sử dụng ssh để chạy svnserve --version trên máy chủ:

$ ssh user @ host svnserve --version

Cần phải chạy lệnh svnserve trên máy thực sự đóng vai trò là máy chủ.


1
điều này giả sử bạn có thể ssh đến máy chủ. Thông thường, định cấu hình máy chủ svn + ssh bằng khóa chung trong tệp ủy quyền và lệnh = svnserve tự động khởi động svnserver mà không có tùy chọn --version.
jrwren

2

Chỉ cần sử dụng trình duyệt web để đến địa chỉ SVN. Kiểm tra mã nguồn ( Ctrl+ U). Sau đó, bạn sẽ tìm thấy một cái gì đó giống như trong mã HTML:

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

2

Duyệt kho lưu trữ với Firefox và kiểm tra phần tử bằng Fireorms . Trong tab NET, bạn có thể kiểm tra Tiêu đề của trang. Nó sẽ có một cái gì đó như:

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

1
Đã thử điều này với máy chủ lật đổ của tôi và không thấy phiên bản. Nhìn vào các bài viết khác tương tự, có vẻ như không phải tất cả các máy chủ lật đổ đều hỗ trợ cách xác định số phiên bản máy chủ cụ thể này.
Joshua

1

Đối với Subversion 1.7 trở lên, máy chủ không cung cấp chân trang cho biết phiên bản máy chủ. Nhưng bạn có thể chạy lệnh sau để có được phiên bản từ các tiêu đề phản hồi

$ 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

Lưu ý rằng điều này cũng hoạt động trên các máy chủ Subversion nơi bạn không có quyền truy cập.


1

Bạn có thể kết nối với máy chủ Subversion của mình bằng HTTP và tìm số phiên bản trong tiêu đề HTTP.


0

Nếu bạn sử dụng VisualSVN Server, bạn có thể tìm ra số phiên bản bằng nhiều cách khác nhau.

Sử dụng Trình quản lý máy chủ VisualSVN

Thực hiện theo các bước sau để tìm hiểu phiên bản thông qua bảng điều khiển quản lý:

  1. Bắt đầu bảng điều khiển VisualSVN Server Manager .
  2. Xem Phiên bản ở góc dưới bên phải của bảng điều khiển.

nhập mô tả hình ảnh ở đây

Nếu bạn bấm vào Phiên bản, bạn cũng sẽ thấy các phiên bản của các thành phần.

nhập mô tả hình ảnh ở đây

Kiểm tra tệp README.txt

Thực hiện theo các bước sau để tìm ra phiên bản từ tệp readme.txt:

  1. Bắt đầu notepad.exe .
  2. Mở tệp% VISUALSVN_SERVER% README.txt . Dòng đầu tiên hiển thị số phiên bản.

nhập mô tả hình ảnh ở đây


-1

Sau đây trên dòng lệnh sẽ cung cấp cho bạn số phiên bản

   svn --version

11
Điều đó chỉ cung cấp cho bạn phiên bản của khách hàng (trừ khi bạn chạy nó trên máy chủ). (Và thậm chí sau đó, máy khách svn của máy chủ không nhất thiết phải là phiên bản giống với máy chủ svn, mặc dù rất có thể là vậy.)
cjm

12
-1 Điều này chỉ cung cấp số máy khách lật đổ không liên quan đến số máy chủ.
Andrea Francia

2
cái này dành cho khách hàng Đối với phiên bản máy chủ svnserve --version
Rajesh

1
svn helpkhông hữu ích vì nó không liệt kê các tham số bắt đầu bằng hai dấu gạch ngang. Tìm thấy bài viết của bạn qua google khi tìm kiếm phiên bản svn của tôi.
Bernhard Döbler

-1

Kho lưu trữ không được cập nhật tự động trừ khi quản trị viên chạy 'svnadmin nâng cấp'. Để chắc chắn về số phiên bản của kho lưu trữ, hãy kiểm tra tệp 'định dạng'. Xem bình luận của @ bdumitriu .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.