Intereting Posts
Зафиксировать все файлы в папке в репозитории SVN с помощью sharpsvn Svn игнорировать с подрывной деятельностью Начиная с нас ProjectLocker – новый для SVN Сомнения в отношении окружающей среды – миграция Есть ли способ автоматически «Обновить решение до последней версии» из SVN в Visual Studio? Использование SourceGear Vault с Eclipse? Использование контроля версий для домашнего развития? Есть ли надежный / надежный способ полностью очистить рабочую копию SVN до ее создания? Проверить сообщение фиксации сообщения для обновления промежуточного и живого сервера Ищете команды, похожие на «svn xx» в git (также запутанные в некоторых понятиях) svn: различия между тегами и ссылкой на номер версии Добавление имени рецензента автоматически в исходные файлы в подрывной Как мне сделать эту проверку Subversion правильно? Команда «svn log –search» не работает со специальными символами делая остановку Openwrt из-за проблемы svn

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

Мы имеем несколько филиалов в 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