Найти последний тег SVN - PullRequest
10 голосов
/ 09 марта 2011

Я настраиваю задание непрерывной интеграции, которое исправляет внешнюю библиотеку и локально выпускает исправленную версию.

Однако внешняя библиотека использует TRUNK для разработки, и я хотел бы, чтобы моя работа CI автоматически выбрала тег последней версии для проверки.

Имеет ли SVN такую ​​функциональность?

(Сценарии bash Shell в порядке)

Ответы [ 5 ]

12 голосов
/ 09 марта 2011

Хм ... Как насчет следующего:

svn log URL/tags --limit 1

распечатает последний тег.

10 голосов
/ 09 марта 2011

Это будет работать, если ничего лучшего не может быть найдено:

svn log -v <tagsurl> | awk '/^   A/ { print $2 }' | grep -v RC |  head -1

(часть grep -v RC отбирает кандидатов на выпуск)

Источник: этот ответ на предыдущий вопрос

2 голосов
/ 11 ноября 2013

Вот это более общее решение.Иногда нам нужен не только последний тег, но и последний тег, соответствующий шаблону:

last_tag=$(svn ls http://svn_rep/XXX/tags/ | egrep '^MySpecialProject_V([0-9].)+[0-9]+[a-zA-Z_0-9]*' | sort --reverse | head -1 2>&1)

Здесь у нас будет последний тег проекта, имя которого начинается с MySpecialProject_V ,И если бы у нас были такие теги:

Koko_V3.1.0.0
MySpecialProject_V1.1.0.0
MySpecialProject_V1.2.0.0
MySpecialProject_V2.1.0.0
MySpecialProject_V2.2.0.0

Результат:

echo $last_tag

... был бы:

MySpecialProject_V2.2.0.0

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 07 июня 2013

Для окон вы можете использовать powershell:

$path = (([Xml] (svn log --xml $Url --verbose --username $Username --password $Password)).Log.LogEntry.Paths.Path |
? { $_.action -eq 'A' -and $_.kind -eq 'dir' -and $_.InnerText -like '*tags*'} |
Select -Property @(
    @{N='date'; E={$_.ParentNode.ParentNode.Date}},
    @{N='path'; E={$_.InnerText}} )|
Sort Date -Descending |
Select -First 1).path

Где $ Url - это URL ваших тегов

0 голосов
/ 09 марта 2011

Svn не имеет определения tag .Я полагаю, вы имеете в виду ревизия .Символическая ревизия HEAD указывает на последнюю ревизию дерева.

например svn export -rHEAD ...

...