Я хочу знать, работает ли на моем сервере Subversion 1.5.
Как я могу это узнать?
Также было бы неплохо узнать номер моей версии клиента SVN. svn help не помог.
Примечание: Мне не нужен мой номер ревизии проект и т. д. Этот вопрос касается самого Программное обеспечение Subversion.





Для сервера на основе HTTP есть сценарий Python, который позволяет найти версию сервера по адресу: http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/server-version.py
Вы можете получить клиентскую версию с
`svn --version`
Если я не ошибаюсь, похоже, что этот скрипт работает только с серверами на основе http или https, а не с серверами svn или ssh + svn.
Если он основан на ssh, просто введите ssh в поле и запустите «svn --version».
'svn --version' на сервере дает вам только версию клиента, работающую на сервере, она может не обязательно совпадать с версией сервера
Этот сценарий также требует, чтобы ServerTokens Full был установлен на сервере Apache. Он не будет работать на тех же серверах, на которых не работает решение curl.
На сервере: svnserve --version
в случае конфигурации на основе svnserve (svn: // и svn + xxx: //).
(Для полноты).
Как Джо Дж. Упоминает ниже, я считаю, что это просто даст вам версию клиентской программы svnserve, которая, скорее всего, будет соответствовать клиентской программе svn.
svnserve - это не клиентская программа, это серверная. И вы должны ввести команду выше, когда вы находитесь на сервере.
Чтобы найти версию РЕПОЗИТОРИИ subversion, вы можете:
Если не отображается, просмотреть исходный код страницы
<svn version = "1.6.13 (r1002816)" href = "http://subversion.tigris.org/">
Теперь о КЛИЕНТЕ подрывной деятельности:
svn --version
будет достаточно
Это работает только в том случае, если сервер будет отображать эту информацию, а некоторые серверы, такие как хостинг кода Google, нет.
Я не думаю, что Source Forge отображает эти данные.
Это версия сервера или версия репозитория? (они могут быть разными AFAIK)
Вы также можете посмотреть заголовки ответов (например, используя firebug / net view) и найти там версию SVN.
CollabNet также не отображает номер версии - ни явно, ни в источнике страницы.
Не работает (ни на странице, ни в источнике страницы) на нашей установке.
-1: Ожидание завершения этого ответа (заполнитель «<insert curl, grep oneliner here>»). В остальном ответ мне не пригодился, так как сервер, который я использую, предназначен только для svn://.
Вот самый простой способ получить версию сервера 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>
Это то, что мне было нужно. Проголосуйте, пожалуйста!
Работает только при "ServerTokens Full" (httpd.apache.org/docs/2.2/mod/core.html#servertokens).
Для конфигурации svn + ssh используйте ssh для запуска svnserve --version на хост-машине:
$ ssh user@host svnserve --version
Необходимо запустить команду svnserve на машине, которая фактически служит сервером.
это предполагает, что вы можете подключиться к серверу по ssh. Обычно svn + ssh-сервер настраивается с открытым ключом в файле authorized_keys и командой = svnserve, которая автоматически запускает svnserver без параметра --version.
Вы можете подключиться к своему серверу Subversion с помощью HTTP и найти номер версии в заголовке HTTP.
Если версия сервера 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/\.]*\).*//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/\.]*\).*//p';
Я пробовал все другие варианты на этой странице, с помощью curl и из URL-адреса, и пока что это единственный, который у меня сработал - server is freebsd, server 1.6.16.
Точно так же это единственный ответ, который сработал для меня среди всех ответов здесь. Я использовал HTTP-заголовки Firefox Live и прочитал ответ сервера, потому что у меня также были проблемы с ssl-сертификатом, которые я не хотел бы выяснять. Спасибо, Кристофер
@Kirby Я добавил параметр --no-check--certificate, --user и --password для обработки серверов, требующих учетных данных, но не имеющих действующего сертификата ssh. Как вы заметили, это довольно распространенное явление.
@Christopher он должен читать: '' wget --password = 'пароль' .. | ..; ' над.
@whaefelinger, спасибо за исправление. Я обновил ответ.
Работает для CollabNet / SVN 1.9.1
Просто используйте веб-браузер, чтобы перейти по адресу SVN. Проверьте исходный код (Ctrl + U). Тогда вы найдете что-то вроде HTML-кода:
<svn version = "1.6. ..." ...
Объединим эти ответы:
См. Строку «Powered by Subversion» при доступе к серверу через браузер.
Войдите в репозиторий через браузер, а затем найдите строку версии, встроенную в исходный HTML-код. Из более ранние ответы Эльвьехо и Jaredjacobs. Точно так же от ?? используйте инструменты разработчика вашего браузера (обычно Ctrl + Shift + I), чтобы прочитать полный ответ. Это также самый простой (неавтоматизированный) способ работы с сертификатами и авторизацией - ваш браузер сделает это за вас.
Проверьте теги ответа (они не показаны в исходном HTML), от более ранний ответ до Кристофер
wget -S --spider 'http://svn.server.net/svn/repository' 2>&1 |
sed -n '/SVN/s/.*\(SVN[0-9/\.]*\).*//p'
От более ранний ответ по Милен
svnserve --version (run on svn server)
От более ранний ответ по Гленн
ssh user@host svnserve --version
Check out the current version in a FAQ:
http://code.google.com/p/support/wiki/SubversionFAQ#What_version_of_Subversion_do_you_use?
TBD
Пожалуйста, отредактируйте, чтобы закончить этот ответ
svn --version
Из этого ответа непонятно, что на сервере должен использоваться svnserve --version. Если он запущен на клиенте, он дает номер версии клиента, а не сервера.
Это хорошая коллекция. Я сделал это способом «прочитать полный ответ с http / https-доступа». В моем случае я вижу одну строку в заголовке ответа: <Сервер: «Apache / 2.2.14 (Unix) DAV / 2 SVN / 1.6.9 mod_ssl / 2.2.14 OpenSSL / 0.9.8a»>
В случае, если кто-то использует Visual SVN Server, первые несколько строк исходного кода HTML (щелкните правой кнопкой мыши, просмотреть исходный код страницы) укажут версию SVN.
Этот ответ - обсуждается на Мета.
Просмотрите репозиторий с помощью Firefox и проверьте элемент с помощью Firebug. На вкладке NET вы можете проверить заголовок страницы. Будет что-то вроде:
Server: Apache/2.2.14 (Win32) DAV/2 SVN/1.X.X
Пробовал это с моим сервером Subversion и не вижу версии. Глядя на другие похожие сообщения, похоже, что не все серверы Subversion поддерживают этот конкретный способ определения номера версии сервера.
Еще один вариант: если у вас есть Firefox (я использую 14.0.1) и веб-интерфейс SVN:
Там должна быть строка «SVN / 1.7.4» или что-то подобное. Опять же, это, вероятно, будет работать только в том случае, если у вас есть «ServerTokens Full», как упоминалось выше.
Спасибо. Я только что проделал то же самое в Chrome для сервера VisualSVN, открыв вкладку «Сеть» в окне «Инструменты разработчика» (нажмите F12, чтобы получить к ней доступ), а затем проверил ответ.
Обновление: щелкните вкладку «Сеть» на панели «Инструменты» перед обновлением страницы (в настоящее время Firefox 30).
Для 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, к которым у вас нет авторизации.
На самом деле не существует способа легкий узнать, какая версия 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 или выше, это не проблема.svn:global-ignores и svn:auto-props: Увы! Чего мы очень хотели. Способ настройки этих двух свойств вне зависимости от самого файла конфигурации Subversion. Однако это проблема только для клиента, поэтому опять же не имеет значения, какую версию сервера вы используете.Из всех функций только одна зависит от версии сервера 1.5 или выше (а 1.4 уже давно устарела. Новые функции 1.8 улучшат производительность вашей рабочей копии, но сервер версии 1.8 не является В этом нет необходимости. Версия клиента в большей степени влияет на вас, чем версия сервера.
Я знаю, что это не тот ответ, который вы хотели (нет официального способа увидеть версию сервера), но, к счастью, серверная версия на самом деле не так сильно на вас влияет.
Попробуй это:
ssh your_user@your_server svnserve --version
svnserve, version 1.3.1 (r19032)
compiled May 8 2006, 07:38:44
Я надеюсь, что это помогает.
Если вы используете VisualSVN Server, вы можете узнать номер версии несколькими способами.
Выполните следующие действия, чтобы узнать версию через консоль управления:
Если вы нажмете Версия, вы также увидите версии компонентов.
Выполните следующие действия, чтобы узнать версию из файла readme.txt:
Репозиторий не обновляется автоматически, если администратор не запустит svnadmin upgrade. Чтобы быть уверенным в номере версии репозитория, проверьте файл «форматирования». См. Ответ @bdumitriu на другой вопрос.