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

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

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

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

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

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

icasimpan 30.03.2011 07:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
294
1
331 824
15

Ответы 15

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

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

`svn --version`

Если я не ошибаюсь, похоже, что этот скрипт работает только с серверами на основе http или https, а не с серверами svn или ssh + svn.

crashmstr 26.09.2008 23:42

Если он основан на ssh, просто введите ssh в поле и запустите «svn --version».

John Meagher 27.09.2008 01:20

'svn --version' на сервере дает вам только версию клиента, работающую на сервере, она может не обязательно совпадать с версией сервера

PiedPiper 27.09.2008 02:54

Этот сценарий также требует, чтобы ServerTokens Full был установлен на сервере Apache. Он не будет работать на тех же серверах, на которых не работает решение curl.

yam655 08.09.2011 21:01

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

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

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

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

Kirby 29.10.2011 03:45

svnserve - это не клиентская программа, это серверная. И вы должны ввести команду выше, когда вы находитесь на сервере.

Milen A. Radev 29.10.2011 17:11

Чтобы найти версию РЕПОЗИТОРИИ subversion, вы можете:

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

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

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

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

svn --version

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

Это работает только в том случае, если сервер будет отображать эту информацию, а некоторые серверы, такие как хостинг кода Google, нет.

Andrea Francia 05.04.2009 14:28

Я не думаю, что Source Forge отображает эти данные.

deft_code 16.06.2009 18:29

Это версия сервера или версия репозитория? (они могут быть разными AFAIK)

GraemeF 06.07.2010 19:58

Вы также можете посмотреть заголовки ответов (например, используя firebug / net view) и найти там версию SVN.

haknick 20.03.2013 02:29

CollabNet также не отображает номер версии - ни явно, ни в источнике страницы.

TenLeftFingers 01.09.2014 17:39

Не работает (ни на странице, ни в источнике страницы) на нашей установке.

Paulo Merson 12.02.2015 19:45

-1: Ожидание завершения этого ответа (заполнитель «<insert curl, grep oneliner here>»). В остальном ответ мне не пригодился, так как сервер, который я использую, предназначен только для svn://.

Slipp D. Thompson 11.11.2015 07:33

Вот самый простой способ получить версию сервера 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>

Это то, что мне было нужно. Проголосуйте, пожалуйста!

bentford 13.11.2009 16:48

Работает только при "ServerTokens Full" (httpd.apache.org/docs/2.2/mod/core.html#servertokens).

Milen A. Radev 10.12.2009 20:11

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

$ ssh user@host svnserve --version

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

это предполагает, что вы можете подключиться к серверу по ssh. Обычно svn + ssh-сервер настраивается с открытым ключом в файле authorized_keys и командой = svnserve, которая автоматически запускает svnserver без параметра --version.

jrwren 16.03.2012 17:38

Вы можете подключиться к своему серверу 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.

ideasman42 14.07.2011 14:16

Точно так же это единственный ответ, который сработал для меня среди всех ответов здесь. Я использовал HTTP-заголовки Firefox Live и прочитал ответ сервера, потому что у меня также были проблемы с ssl-сертификатом, которые я не хотел бы выяснять. Спасибо, Кристофер

Kirby 29.10.2011 03:46

@Kirby Я добавил параметр --no-check--certificate, --user и --password для обработки серверов, требующих учетных данных, но не имеющих действующего сертификата ssh. Как вы заметили, это довольно распространенное явление.

Christopher 15.03.2013 04:21

@Christopher он должен читать: '' wget --password = 'пароль' .. | ..; ' над.

wh81752 04.01.2016 16:47

@whaefelinger, спасибо за исправление. Я обновил ответ.

Christopher 29.09.2016 05:23

Работает для CollabNet / SVN 1.9.1

Michael P 11.12.2018 20:22

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

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

Объединим эти ответы:

Для РЕПОЗИТОРИЯ / СЕРВЕРА (исходный вопрос):

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

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

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

Если 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

Из этого ответа непонятно, что на сервере должен использоваться svnserve --version. Если он запущен на клиенте, он дает номер версии клиента, а не сервера.

Craig McQueen 19.08.2014 03:35

Это хорошая коллекция. Я сделал это способом «прочитать полный ответ с 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 05:41

В случае, если кто-то использует Visual SVN Server, первые несколько строк исходного кода HTML (щелкните правой кнопкой мыши, просмотреть исходный код страницы) укажут версию SVN.

Raptor 04.03.2016 10:35

Этот ответ - обсуждается на Мета.

Glorfindel 29.09.2016 08:52

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

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

Пробовал это с моим сервером Subversion и не вижу версии. Глядя на другие похожие сообщения, похоже, что не все серверы Subversion поддерживают этот конкретный способ определения номера версии сервера.

Joshua 12.10.2012 05:32

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

  • Открыть Инструменты-> Веб-разработчик-> Веб-консоль на странице репо
  • Обновить страницу
  • Щелкните строку ПОЛУЧИТЬ
  • Посмотрите в разделе Заголовки ответа строку Сервер:

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

Спасибо. Я только что проделал то же самое в Chrome для сервера VisualSVN, открыв вкладку «Сеть» в окне «Инструменты разработчика» (нажмите F12, чтобы получить к ней доступ), а затем проверил ответ.

XåpplI'-I0llwlg'I - 04.02.2013 16:01

Обновление: щелкните вкладку «Сеть» на панели «Инструменты» перед обновлением страницы (в настоящее время Firefox 30).

Conrad 08.07.2014 17:36

Для 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 или выше, это не проблема.
  • Наследование собственности: это еще одно обновление выпуска 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 не является В этом нет необходимости. Версия клиента в большей степени влияет на вас, чем версия сервера.

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

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

ssh your_user@your_server svnserve --version

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

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

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

Используйте VisualSVN Server Manager

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

  1. Запустите консоль VisualSVN Server Manager.
  2. См. Версия в правом нижнем углу панели инструментов.

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

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

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

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

Другие вопросы по теме