Как узнать номер версии моего сервера Subversion?

Я хочу знать, работает ли на моем сервере Subversion 1.5.

Как я могу это узнать?

Также было бы неплохо узнать мой номер версии клиента SVN. svn helpне помогло

Примечание. Мне не нужен номер версии моего проекта и т. Д. Этот вопрос касается самого программного обеспечения Subversion .

292 svn
26.09.2008 18:29:54
17 ОТВЕТОВ

Чтобы найти версию хранилища Subversion вы можете:

  1. Посмотрите на хранилище в Интернете и в нижней части страницы будет написано что-то вроде:
    «Powered by Subversion версия 1.5.2 (r32768)».
  2. Из командной строки: <вставить curl, grep oneliner здесь>

Если не отображается, просмотрите источник страницы

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

Теперь для подрывной деятельности КЛИЕНТА:

svn --version

будет достаточно

210
24.08.2011 16:16:54
Это работает, только если сервер отображает эту информацию, а некоторые серверы, такие как хостинг кода Google, - нет.
Andrea Francia 5.04.2009 10:28:56
Это версия сервера или версия репозитория? (они могут быть разными AFAIK)
GraemeF 6.07.2010 15:58:26
Вы также можете посмотреть на заголовки ответа (например, с помощью firebug / net view) и найти там версию SVN
haknick 19.03.2013 22:29:09
CollabNet также не отображает номер версии - ни визуально, ни в источнике страницы.
TenLeftFingers 1.09.2014 13:39:42
-1: Ожидание завершения этого ответа (заполнитель «<insert curl, grep oneliner here>».) В противном случае ответ мне не пригодился, поскольку используемый мной сервер - только svn://.
Slipp D. Thompson 11.11.2015 04:33:28

Давайте объединим эти ответы:

Для хранилища / сервера (оригинальный вопрос):

Если вы можете получить доступ к серверу Subversion:

  • С раннего ответа по Мануила , выполните следующую команду на сервере SVN:

    svnadmin --version
    

Если доступ HTTP / HTTPS:

  • См. Строку «powered by 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'
    

Если 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
133
23.05.2017 12:10:54
Из этого ответа не понятно, что svnserve --versionнужно использовать на сервере. Если он запускается на клиенте, он дает номер версии клиента, а не сервера.
Craig McQueen 18.08.2014 23:35:13
Это хорошая коллекция. Я сделал это путем «прочитать полный ответ от доступа http / https». В моем случае я вижу одну строку в заголовке ответа: <Сервер: "Apache / 2.2.14 (Unix) DAV / 2 SVN / 1.6.9 mod_ssl / 2.2.14 OpenSSL / 0.9.8a">
Tatera 20.11.2014 02:41:28
В случае, если кто-то использует Visual SVN Server, первые несколько строк исходного кода HTML (щелчок правой кнопкой мыши, просмотр исходного кода страницы) будут указывать версию SVN.
Raptor 4.03.2016 07:35:03
Этот ответ обсуждается на Meta .
Glorfindel 29.09.2016 05:52:40

На сервере: svnserve --version

в случае конфигурации на основе svnserve (svn: // и svn + xxx: //).

(Для полноты).

70
13.05.2013 19:25:00
Как Джо Дж упоминает ниже, я считаю, что это просто даст вам версию клиентской программы svnserve, которая, скорее всего, будет соответствовать клиентской программе svn
Kirby 28.10.2011 23:45:00
svnserveэто не клиентская программа, это сервер. И вы должны ввести команду выше, когда вы находитесь на сервере.
Milen A. Radev 29.10.2011 13:11:31

Вот самый простой способ получить версию сервера SVN. HTTP работает, даже если ваш репозиторий SVN требует HTTPS .

ОПЦИИ $ curl -X http: // my-svn-domain /
<! DOCTYPE HTML PUBLIC "- // IETF // DTD HTML 2.0 // EN">
<HTML> <HEAD> ... </ HEAD>
<Тело> ...
<адрес> Apache / 2.2.11 (Debian) DAV / 2 SVN / 1.5.6 PHP / 5.2.9-4 ... </ address>
</ body> 
</ html>
48
15.04.2015 16:26:07
Это то, что мне было нужно. Проголосуйте, пожалуйста!
bentford 13.11.2009 13:48:35
Работает только при «ServerTokens Full» ( httpd.apache.org/docs/2.2/mod/core.html#servertokens ).
Milen A. Radev 10.12.2009 17:11:41

Для сервера на основе HTTP есть сценарий Python для поиска версии сервера по адресу: http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/server-version.py

Вы можете получить версию клиента с

`svn --version`
24
15.04.2015 16:25:16
Если я не ошибаюсь, похоже, что скрипт работает только с серверами на базе http или https, а не с серверами svn или ssh + svn
crashmstr 26.09.2008 19:42:47
Если он основан на ssh, просто вставьте ssh в окно и запустите "svn --version".
John Meagher 26.09.2008 21:20:19
'svn --version' на сервере дает вам только версию клиента, работающую на сервере, она может не совпадать с версией сервера
PiedPiper 26.09.2008 22:54:47
Этот сценарий также требует, чтобы ServerTokens Full был установлен на сервере Apache. Это не удастся для тех же серверов, на которых будет отказано решение curl.
yam655 8.09.2011 17:01:09

Если версия сервера 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';
24
29.09.2016 02:21:55
Я перепробовал все остальные варианты на этой странице, с помощью curl и с URL, и пока это единственный вариант, который у меня работает - сервер freebsd, сервер 1.6.16.
ideasman42 14.07.2011 10:16:39
Кроме того, это единственный ответ, который работал для меня среди всех ответов здесь. Я использовал Firefox Live HTTP Headers и для чтения ответа сервера, потому что у меня также были проблемы с сертификатом ssl, которые я не испытывал, пытаясь разобраться. Спасибо, Кристофер
Kirby 28.10.2011 23:46:42
@Kirby Я добавил --no-check--certificateпараметр a --userи --passwordдля обработки серверов, которые требуют учетные данные, но не имеют действительного сертификата ssh. Это довольно часто, как вы заметили.
Christopher 15.03.2013 00:21:05
@ Кристофер должен читать '' wget --password = 'пароль' .. | ..; ' выше.
whaefelinger 4.01.2016 13:47:01
@whaefelinger спасибо за исправление. Я обновил ответ.
Christopher 29.09.2016 02:23:18

Еще один вариант: если у вас есть Firefox (я использую 14.0.1) и веб-интерфейс SVN:

  • Откройте Инструменты-> Веб-разработчик-> Веб-консоль на странице репо
  • Обновить страницу
  • Нажмите на строку GET
  • Посмотрите в разделе Заголовки ответа в строке Server:

Там должна быть строка "SVN / 1.7.4" или аналогичная. Опять же, это, вероятно, будет работать только при наличии «ServerTokens Full», как указано выше.

8
20.08.2012 13:48:59
Спасибо. Я только что проделал аналогичную работу в Chrome для сервера VisualSVN, открыв вкладку «Сеть» в окне «Инструменты разработчика» (нажмите F12, чтобы получить доступ к этому), а затем проверил ответ.
XåpplI'-I0llwlg'I - 4.02.2013 12:01:32
Обновление: нажмите на вкладку Сеть на панели инструментов перед обновлением страницы (в настоящее время Firefox 30)
Conrad 8.07.2014 13:36:00

На самом деле не существует простого способа узнать, какая версия Subversion работает на вашем сервере - кроме как попасть на сервер и убедиться в этом.

Однако это может быть не такой большой проблемой, как вы думаете. Клиенты Subversion - это большая часть основной работы, и большинство версий клиентов Subversion могут работать практически с любой версией сервера.

Последним выпуском, где версия сервера действительно имела значение для клиента, было изменение с версии 1.4 на версию 1.5, когда было добавлено отслеживание слияния. Отслеживание слияний было значительно улучшено в версии 1.6, но это не влияет на взаимодействие между клиентом и сервером.

Давайте возьмем последние изменения в Subversion 1.8:

  • svn moveтеперь операция первого класса : Subversion наконец понимает, что svn moveэто не a svn copyи svn delete. Тем не менее, это то, что клиент обрабатывает и не влияет на версию сервера.
  • svn merge --reintegrateустарело : опять же, если сервер версии 1.5 или выше, это не проблема.
  • Наследование свойств : это еще одно обновление версии 1.8, но оно будет работать с любым сервером Subversion - хотя серверы Subversion с версией 1.8 будут обеспечивать более высокую производительность для наследуемых свойств.
  • Два новых наследуемых свойства - svn:global-ignoresиsvn:auto-props : увы! Что мы действительно хотели. Способ настройки этих двух свойств без зависимости от самого файла конфигурации Subversion. Однако это проблема только клиента, поэтому опять-таки не имеет значения, какую версию сервера вы используете.
  • Кэширование памяти gnu-agent : еще одна функция только для клиентов.
  • Улучшения производительности fsfs и аутентификация в репозитории authz. Приятные функции, но они работают независимо от того, какую версию клиента вы используете.

Из всех функций только одна зависит от версии сервера 1.5 или выше (а 1.4 давно устарела. Новые функции 1.8 улучшат производительность вашей рабочей копии, но сервер версии 1.8 не работает. не нужно. Вы намного больше подвержены влиянию версии клиента, чем версии сервера.

Я знаю, что это не тот ответ, который вы хотели (нет официального способа узнать версию сервера), но, к счастью, версия сервера не сильно на вас влияет.

7
13.05.2013 17:32:22

Попробуй это:

ssh your_user@your_server svnserve --version

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

Я надеюсь, что это помогает.

7
16.04.2015 09:05:40

Для конфигурации svn + ssh используйте ssh для запуска svnserve --version на хост-компьютере:

$ ssh user @ host svnserve --version

Необходимо выполнить команду svnserve на компьютере, который фактически служит сервером.

4
31.08.2009 06:43:01
это предполагает, что вы можете SSH к серверу. Обычно сервер svn + ssh настраивается с открытым ключом в файле author_keys и command = svnserve, который автоматически запускает svnserver без опции --version.
jrwren 16.03.2012 13:38:08

Просто используйте веб-браузер, чтобы перейти на адрес SVN. Проверьте исходный код ( Ctrl+ U). Тогда вы найдете что-то вроде в коде HTML:

<svn version="1.6. ..." ...
2
16.04.2015 08:58:41

Просмотрите хранилище с Firefox и осмотрите элемент с помощью Firebug . На вкладке NET вы можете проверить заголовок страницы. Это будет что-то вроде:

Server: Apache/2.2.14 (Win32) DAV/2 SVN/1.X.X
2
16.04.2015 09:04:19
Попробовал это на моем сервере Subversion и не вижу версию. Если посмотреть на другие похожие записи, похоже, что не все серверы Subversion поддерживают этот конкретный способ определения номера версии сервера.
Joshua 12.10.2012 01:32:32

Для 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
9.01.2013 03:09:38

Вы можете подключиться к вашему серверу Subversion с помощью HTTP и найти номер версии в заголовке HTTP.

1
15.04.2015 16:26:41

Если вы используете VisualSVN Server, вы можете узнать номер версии несколькими различными способами.

Используйте Диспетчер серверов VisualSVN

Выполните следующие действия, чтобы узнать версию через консоль управления:

  1. Запустите консоль диспетчера сервера VisualSVN .
  2. Смотрите версию в правом нижнем углу приборной панели.

введите описание изображения здесь

Если вы нажмете « Версия», вы также увидите версии компонентов.

введите описание изображения здесь

Проверьте файл README.txt

Выполните следующие действия, чтобы узнать версию из файла readme.txt:

  1. Запустите notepad.exe .
  2. Откройте файл % VISUALSVN_SERVER% README.txt . Первая строка показывает номер версии.

введите описание изображения здесь

0
27.03.2020 13:41:34

Следующее в командной строке должно дать вам номер версии

   svn --version
-1
26.09.2008 18:31:24
Это только дает вам версию клиента (если вы не запускаете ее на сервере). (И даже в этом случае svn-клиент сервера не обязательно совпадает с версией svn-сервера, хотя, скорее всего, так и есть.)
cjm 26.09.2008 19:34:41
-1 Это дает только номер клиента Subversion, который не связан с номером сервера.
Andrea Francia 5.04.2009 10:30:40
это для клиента. Для серверной версии svnserve --version
Rajesh 27.03.2014 07:24:38
svn helpне помогло, так как не перечисляло параметры, начинающиеся с двух тире. Нашел свой пост через гугл при поиске моей svn версии.
Bernhard Döbler 26.10.2016 10:01:45

Репозиторий не обновляется автоматически, если администратор не запускает обновление svnadmin. Чтобы быть уверенным в номере версии репозитория, проверьте файл 'format'. Смотрите комментарий @ bdumitriu .

-1
23.05.2017 11:33:26