Использование фактического номера ревизии ветви в Хадсоне

Мы имеем несколько филиалов в SVN и используем рабочие места Hudson CI для поддержания наших сборок. Мы используем номер версии SVN как часть нашего номера версии приложения. Проблема в том, что когда работа Хадсона проверяет главу плеча, он получает HEAD-число SVN, которое не было последним совершенным пересмотром этого брака. Я знаю, SVN поддерживает номера ревизий в глобальном масштабе, но мы хотим отразить последнее зафиксированное количество отдельных разделов в нашей версии.

есть ли способ получить последний зафиксированный номер ревизии брака, используя скрипт python, чтобы я мог проверить эту ветку, используя этот номер ревизии? или лучше, если есть способ сделать это в самом Хадсоне?

Благодарю.

Solutions Collecting From Web of "Использование фактического номера ревизии ветви в Хадсоне"

Получение последнего исправленного пути с использованием python:

from subprocess import check_output as run # >=2.7 path = './' cmd = ['svn', '--username', XXXX, '--password', XXXX, '--non-interactive', 'info', path] out = run(cmd).splitlines() out = (i.split(':', 1) for i in out if i) info = {k:v.strip() for k,v in out} # you can access the other svn info fields in a similar manner rev = info['Last Changed Rev'] with open('.last-svn-commit', 'w') as fh: fh.write(rev) 

Я не думаю, что плагин subversion scm может предоставить вам необходимую информацию (он экспортирует только SVN_URL и SVN_REVISION ). Имейте в виду, что нет никакой разницы между проверкой «Last changed Rev» и пересмотра HEAD – они оба относятся к одному и тому же контенту в вашей ветке.

Возможно, вам захочется рассмотреть возможность использования нового задания для каждой вашей ветви. Таким образом, фиксация, которая запускает сборку, будет «Last changed Rev» (если вы не активируете ее самостоятельно). Вы можете сделать это вручную, выполнив клонирование задания соединительной линии и изменив URL-адрес репозитория, или вы можете использовать инструмент, например, jenkins-autojobs, чтобы сделать это автоматически.

Кроме svn info вы также можете использовать svn log -q -l 1 URL или svn ls -v --depth empty URL