Як знайти свій номер версії сервера Subversion?


292

Я хочу знати, чи працює на моєму сервері Subversion 1.5.

Як я можу це дізнатися?

Також було б добре знати мій номер версії клієнта SVN. svn helpне було корисно.

Примітка. Я не хочу ревізійного номера свого проекту тощо. Це питання стосується самого програмного забезпечення Subversion .

Відповіді:


210

Щоб знайти версію субверсії REPOSITORY, ви можете:

  1. Перегляньте сховище в Інтернеті та внизу сторінки, воно буде говорити приблизно так:
    "Наданий Subversion версії 1.5.2 (r32768)."
  2. З командного рядка: <тут вставити curl, grep oneliner>

Якщо не відображається, перегляньте джерело сторінки

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

Тепер для клієнта-підривника:

svn --version

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


31
Це працює лише в тому випадку, якщо сервер відображатиме цю інформацію, деякі сервери, такі як хостинг коду google, ні.
Андреа Франсія

3
Це версія сервера чи версія сховища? (вони можуть бути різними AFAIK)
GraemeF

7
Ви також можете подивитися заголовки відповідей (використовуючи перегляд firebug / net для напр.) І знайти там версію SVN
haknick

6
CollabNet також не відображає номер версії - ні видимо, ні в джерелі сторінки.
TenLeftFingers

5
-1: Чекаю, коли ця відповідь буде закінчена (заповнення заповнення "<вставте curl, grep oneliner тут>".) Відповідь мені не була корисна інакше, оскільки сервер, який я використовую, - лише svn://.
Сліпп Д. Томпсон

133

Об’єднаємо ці відповіді:

ДЛЯ РЕПОЗИТОРІЇ / СЕРВЕРА (оригінальне запитання):

Якщо ви можете отримати доступ до сервера Subversion:

Якщо доступ до HTTP / HTTPS:

  • Під час доступу до сервера через веб-переглядач див. Рядок "живлення від 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

Якщо сервери 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необхідно використовувати на сервері. Якщо він працює на клієнті, він надає номер версії клієнта, а не сервера.
Крейг МакКуїн

Це гарна колекція. Я зробив це шляхом "прочитати повну відповідь з http / https доступу". У моєму випадку я бачу один рядок у заголовку відповіді: <Сервер: "Apache / 2.2.14 (Unix) DAV / 2 SVN / 1.6.9 mod_ssl / 2.2.14 OpenSSL / 0.9.8a">
Tatera

Якщо хтось використовує Visual SVN Server, перші кілька рядків джерела HTML (клацніть правою кнопкою миші, перегляньте Джерело сторінки) вказуватимуть версію SVN.
Раптор


70

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

у випадку конфігурації на основі svnserve (svn: // і svn + xxx: //).

(Для повноти).


Як згадує Джо Дж. Нижче, я вважаю, що це просто надасть вам версію клієнтської програми svnserve, яка, швидше за все, відповідатиме клієнтській програмі svn
Кірбі,

12
svnserveце не клієнтська програма, це сервер. І ви повинні ввести команду вище, коли ви перебуваєте на сервері.
Мілен А. Радев

48

Ось найпростіший спосіб отримати версію SVN-сервера. HTTP працює, навіть якщо для вашого сховища SVN потрібен HTTPS .

$ curl -X ВАРІАНТИ http: // my-svn-domain /
<! DOCTYPE HTML PUBLIC "- // IETF // DTD HTML 2.0 // EN">
<html> <head> ... </head>
<body> ...
<адреса> Apache / 2.2.11 (Debian) DAV / 2 SVN / 1.5.6 PHP / 5.2.9-4 ... </address>
</body> 
</html>

1
Це те, що мені було потрібно. Проголосуйте, будь ласка!
Бентфорд

8
Працює лише тоді, коли "ServerTokens Full" ( httpd.apache.org/docs/2.2/mod/core.html#servertokens ).
Мілен А. Радев

24

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

Ви можете отримати клієнтську версію за допомогою

`svn --version`

5
Якщо я не помиляюсь, схоже, що сценарій працює лише на серверах на базі http або https, а не на серверах svn або ssh + svn
crashmstr

Якщо це ssh на основі просто ssh у поле та запустіть "svn --version".
Джон Мізер

5
'svn --version' на сервері дає лише клієнтську версію, запущену на сервері, вона не обов'язково повинна бути такою ж, як версія сервера
PiedPiper

1
Цей сценарій також вимагає встановити ServerTokens Full на сервері Apache. Він вийде з ладу для тих самих серверів, на яких буде згортатися рішення curl.
yam655

24

Якщо версія сервера 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';

4
Я спробував усі інші параметри на цій сторінці, з завитком та з URL-адреси, і це поки що єдиний, який працював для мене - сервер freebsd, сервер 1.6.16.
ideaman42

Так само це єдина відповідь, яка працювала на мене серед усіх відповідей тут. Я використовував заголовки HTTP Firefox Live і читав відповідь сервера, тому що у мене також виникали проблеми з сертифікатом ssl, які я не відчував, як зіткнутися з проблемою. Дякую, Крістофер
Кірбі

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

1
@Christopher він повинен читати '' wget --password = 'пароль' .. | ..; ' вище.
whaefelinger

@whaefelinger дякую за виправлення. Я оновив відповідь.
Крістофер

8

Ще один варіант: Якщо у вас є Firefox (я використовую 14.0.1) та веб-інтерфейс SVN:

  • Відкрийте Інструменти-> Веб-розробник-> Веб-консоль на сторінці репо
  • Оновити сторінку
  • Клацніть на лінії GET
  • Подивіться в відповідь Заголовки розділу на сервері: рядок

Там повинен бути рядок "SVN / 1.7.4" або подібний. Знову ж, це, ймовірно, спрацює, лише якщо у вас є "ServerTokens Full", як було зазначено вище.


Дякую. Я щойно зробив подібне в Chrome для сервера VisualSVN, відкривши вкладку «Мережа» у вікні «Інструменти для розробників» (натисніть F12, щоб отримати доступ до цього), а потім перевірив відповідь.
XåpplI'-I0llwlg'I -

Оновлення: натисніть на вкладку "Мережа" на панелі "Інструменти" перед оновленням сторінки (зараз Firefox 30)
Конрад

7

Дійсно дізнатися, якою версією 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 isn Версія вашого клієнта набагато більше впливає, ніж версія вашого сервера.

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


7

Спробуйте це:

ssh your_user@your_server svnserve --version

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

Я сподіваюся, що це допомагає.


4

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

$ ssh user @ host svnserve --версія

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


1
це передбачає, що ви можете сш на сервер. Загальноприйнято конфігурувати сервер svn + ssh з відкритим ключем у дозволеному файлі_ command та command = svnserve, який автоматично запускає svnserver без параметра --version.
jrwren

2

Просто за допомогою веб-браузера перейдіть до адреси SVN. Перевірте вихідний код ( Ctrl+ U). Тоді ви знайдете щось подібне до HTML-коду:

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

2

Перегляньте сховище з Firefox і огляньте елемент за допомогою Firebug . На вкладці NET ви можете перевірити Заголовок сторінки. Він матиме щось на кшталт:

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

1
Спробував це на моєму сервері підривної роботи і не бачу версії. Дивлячись на інші схожі пости, це здається, що не всі підривні сервери підтримують саме цей спосіб визначення номера версії сервера.
Джошуа

1

Для 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, де у вас немає дозволу на доступ.


1

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


0

Якщо ви використовуєте VisualSVN Server, ви можете дізнатися номер версії кількома різними способами.

Використовуйте VisualSVN Server Manager

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

  1. Запустіть менеджер сервера VisualSVN консоль .
  2. Дивіться версію в правому нижньому куті приладової панелі.

введіть тут опис зображення

Якщо натиснути " Версія", ви також побачите версії компонентів.

введіть тут опис зображення

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

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

  1. Запустіть notepad.exe .
  2. Відкрийте файл % VISUALSVN_SERVER% README.txt . У першому рядку відображається номер версії.

введіть тут опис зображення


-1

Далі в командному рядку повинно бути вказано номер версії

   svn --version

11
Це дає лише версію клієнта (якщо ви не запустите її на сервері). (І навіть тоді, клієнт svn сервера не обов'язково є тією ж версією, що і сервер svn, хоча це, швидше за все, так і є.)
cjm,

12
-1 Це дає лише номер клієнта-підривника, який не пов'язаний з номером сервера.
Андреа Франсія

2
це для клієнта. Для серверної версії svnserve --version
Раджеш,

1
svn helpне було корисно, оскільки не перераховувало параметри, починаючи з двох тире. Знайшов свою публікацію через Google, шукаючи мою версію svn.
Бернхард Дьоблер

-1

Репозиторій не оновлюється автоматично, якщо адміністратор не запустить оновлення svnadmin. Щоб переконатися в номері версії сховища, перевірте файл "Формат". Дивіться коментар @ bdumitriu .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.