Как узнать номер версии моего сервера Subversion?
Я хочу знать, работает ли на моем сервере Subversion 1.5.
Как я могу это выяснить?
Также было бы неплохо узнать мой номер версии клиента SVN. svn help
не помогло
Примечание. Мне не нужен номер версии моего проекта и т. Д. Этот вопрос касается самого программного обеспечения Subversion.
16 ответов
Чтобы найти версию хранилища Subversion вы можете:
- Посмотрите на хранилище в Интернете, и в нижней части страницы он скажет что-то вроде:
"Работает на Subversion версии 1.5.2 (r32768)." - Из командной строки: <вставьте curl, grep oneliner здесь>
Если не отображается, просмотрите источник страницы
<svn version="1.6.13 (r1002816)" href="http://subversion.tigris.org/">
Теперь для подрывной деятельности КЛИЕНТА:
svn --version
будет достаточно
Давайте объединим эти ответы:
Для хранилища / сервера (оригинальный вопрос):
Если вы можете получить доступ к серверу Subversion:
Если доступ 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 доступ
Из более раннего ответа Milen A. Radev
svnserve --version (run on svn server)
ssh user@host svnserve --version
Если 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
в случае конфигурации на основе svnserve (svn:// и svn + xxx: //).
(Для полноты).
Для сервера на основе HTTP существует сценарий Python для поиска версии сервера по адресу: http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/server-version.py
Вы можете получить версию клиента с
`svn --version`
Если версия сервера 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';
На самом деле нет простого способа узнать, какая версия 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 не работает. не обязательно. Вы намного больше подвержены влиянию версии клиента, чем версии сервера.
Я знаю, что это не тот ответ, который вы хотели (нет официального способа узнать версию сервера), но, к счастью, версия сервера не сильно повлияла на вас.
Еще один вариант: если у вас Firefox (я использую 14.0.1) и веб-интерфейс SVN:
- Откройте Инструменты-> Веб-разработчик-> Веб-консоль на странице репо
- Обновить страницу
- Нажмите на строку GET
- Посмотрите в разделе Заголовки ответа в строке Server:
Там должна быть строка "SVN/1.7.4" или аналогичная. Опять же, это, вероятно, будет работать только при наличии "ServerTokens Full", как указано выше.
Попробуй это:
ssh your_user@your_server svnserve --version
svnserve, version 1.3.1 (r19032)
compiled May 8 2006, 07:38:44
Я надеюсь, что это помогает.
Для конфигурации svn+ssh используйте ssh для запуска svnserve --version на хост-машине:
$ ssh user @ host svnserve --version
Необходимо выполнить команду svnserve на компьютере, который фактически служит сервером.
Если вы используете VisualSVN Server, вы можете узнать номер версии несколькими способами.
Используйте VisualSVN Server Manager
Чтобы узнать версию через консоль управления, выполните следующие действия:
- Запустите консоль VisualSVN Server Manager.
- См. Версию в правом нижнем углу панели инструментов.
Если вы нажмете " Версия", вы также увидите версии компонентов.
Проверьте файл README.txt
Выполните следующие действия, чтобы узнать версию в файле readme.txt:
- Запустите notepad.exe.
- Откройте файл %VISUALSVN_SERVER%README.txt. В первой строке указан номер версии.
Для 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, где у вас нет прав доступа.
Просмотрите хранилище с помощью Firefox и осмотрите элемент с помощью Firebug. На вкладке NET вы можете проверить заголовок страницы. Это будет что-то вроде:
Server: Apache/2.2.14 (Win32) DAV/2 SVN/1.X.X
Просто используйте веб-браузер, чтобы перейти на адрес SVN. Проверьте исходный код (Ctrl + U). Тогда вы найдете что-то вроде в коде HTML:
<svn version="1.6. ..." ...
Вы можете подключиться к вашему серверу Subversion с помощью HTTP и найти номер версии в заголовке HTTP.
В некоторых случаях приведенные выше ответы неверны - вот что я вижу, когда просматриваю свой URL-адрес $SVN и источники просмотра (на сервере работает VisualSVN, но источник http дает очень загадочную версию)
<!DOCTYPE html>
<html data-visualsvn-root="/"
data-visualsvn-pdfworker-version="5383a46b88e89310423b5ff95be8bfa33fdfd8b4"
data-visualsvn-diffworker-version="d27b427dec85bc1144be97e007dbf81a132ab38c"
data-visualsvn-blameworker-version="a953c1fdd48d83a74f9abee5c56b0c0024e6bf72"
data-visualsvn-findfileworker-version="315159a1e9bfa1995e189038f61db5a39b97b269">
Репозиторий не обновляется автоматически, если администратор не запускает обновление svnadmin. Чтобы быть уверенным в номере версии репозитория, проверьте файл 'format'. Смотрите комментарий @bdumitriu.
Следующее в командной строке должно дать вам номер версии
svn --version