Как узнать номер версии моего сервера Subversion? - PullRequest
289 голосов
/ 26 сентября 2008

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

Как я могу это выяснить?

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

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

Ответы [ 16 ]

207 голосов
/ 16 октября 2008

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

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

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

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

Теперь для подрывного КЛИЕНТА:

svn --version

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

131 голосов
/ 29 февраля 2012

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

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

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

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

  • См. Строку «powered by Subversion» при доступе к серверу через браузер.

  • Получите доступ к хранилищу через браузер, а затем найдите строку версии, встроенную в источник HTML. Из более ранних ответов elviejo и jaredjacobs . Аналогично, из ??, используйте инструменты разработчика вашего браузера (обычно 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 access

Если серверы 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
69 голосов
/ 27 сентября 2008

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

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

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

48 голосов
/ 18 июля 2009

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

<b>$ curl -X OPTIONS http://my-svn-domain/</b>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>...</head>
<body>...
<address>Apache/2.2.11 (Debian) DAV/2 <b>SVN/1.5.6</b> PHP/5.2.9-4 ...</address>
</body><br></html>
24 голосов
/ 26 сентября 2008

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

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

`svn --version`
23 голосов
/ 30 апреля 2010

Если версия сервера 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';
8 голосов
/ 20 августа 2012

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

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

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

7 голосов
/ 24 января 2014

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

ssh your_user@your_server svnserve --version

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

Надеюсь, это поможет.

7 голосов
/ 13 мая 2013

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

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

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

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

  • svn move теперь является операцией первого класса : Subversion наконец-то понимает, что svn move - это не 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 не требуется. Вы намного больше подвержены влиянию версии клиента, чем версии сервера.

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

4 голосов
/ 31 августа 2009

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

$ ssh user @ host svnserve --version

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...