Как найти номер версии сервера Subversion?

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

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

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

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

Ответ 1

Чтобы найти версию subversion REPOSITORY, вы можете:

  • Посмотрите на репозиторий в Интернете и в нижней части страницы он скажет что-то вроде:
    "Работает на Subversion версии 1.5.2 (r32768)".
  • Из командной строки: < insert curl, grep oneliner here >

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

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

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

svn --version

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

Ответ 2

Пусть объединяются эти ответы:

Для REPOSITORY/SERVER (исходный вопрос):

Если у вас есть доступ к серверу Subversion:

  • Из более раннего ответа Manuel запустите на сервере 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 access

Если серверы SVN GoogleCode

    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

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 6

Если версия сервера 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';

Ответ 7

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

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

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

Ответ 8

На самом деле не существует простого способа узнать, какая версия 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 in-repository. Хорошие функции, но они работают независимо от того, какую версию клиента вы используете.

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

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

Ответ 9

Попробуйте следующее:

ssh your_[email protected]_server svnserve --version

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

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

Ответ 10

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

$ssh user @host svnserve --version

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

Ответ 11

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

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

Ответ 12

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

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

Ответ 13

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

Ответ 14

Для 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, на которых у вас нет разрешения на доступ.

Ответ 15

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

Ответ 16

В командной строке следует указать номер версии

   svn --version