Как получить последнюю версию SVN без доступа SVN
У нас есть исходное дерево SVN, проверенное на Windows, используя довольно свежую версию SVN. Мы монтируем это дерево через общую папку на виртуальной машине Linux, где мы делаем наши сборки. К сожалению, версия SVN в Linux старше, чем в Windows, поэтому стандартные команды SVN всегда терпят неудачу.
Это не так уж плохо, но нам бы очень хотелось получить номер проверки SVN для извлечения, аналогично тому, что возвращает команда svnversion. То есть нам нужен самый последний номер ревизии во всем дереве.
Можно ли извлечь эту информацию непосредственно из различных файлов в.svn? Мы используем SVN r1.6.11, и вряд ли это изменится, поэтому мы не обязательно заинтересованы в решении, охватывающем версии - только в одном, специфичном для этого выпуска.
Извините, это не совсем верно. SVN 1.6.11 - это версия, которую мы используем в Linux. Версия, используемая в Windows для оформления заказа, которую мы хотим просмотреть, - 1.9.2.
1 ответ
Где-то в разработке SVN формат рабочей копии изменился с файлового на базу данных. Внутри вашей рабочей копии вы найдете обычную базу данных SQLlite в.svn/wc.db.
Команда SQL
SELECT min(revision), max(revision) FROM NODES
Получает минимальную ревизию и максимальную ревизию всех ваших файлов. Вы можете найти множество способов подключения к sqllite через perl, python или ruby.
Само собой разумеется, что это никоим образом не поддерживается, но вам нужно быстрое и грязное решение:)