2013-11-12 2 views
3

У меня есть проект работает как следующий макет:Как сбрасывать теги SVN в ветви?

/my_proj/trunk/ 
/my_proj/tags/1.0.0/ 
/my_proj/tags/1.0.1/ 
/my_proj/tags/1.0.2/ 
/my_proj/tags/1.0.3/ 

так в tags реже там замораживают филиалы готовы к выпуску.

Теперь мы представили сервер CI, который способен сканировать только один каталог, в отличие от многих каналов в tags.

Так что можно не-утончаются tags в серии фиксаций, что-то вроде:

/my_proj/branch/release 
    commit 1: "ver 1.0.0" 
    commit 2: "ver 1.0.1" 
    commit 3: "ver 1.0.2" 
    commit 4: "ver 1.0.3" 
+0

Какое приложение CI вы используете? Каковы желаемые настройки? Есть способы сделать то, что вы хотите, но дьявол находится в деталях. – bahrep

+0

@bahrep Я использую [XCode CI] (https://developer.apple.com/library/etc/redirect/XcodeCIGuide) от Apple. Я могу только непрерывно сканировать фиксации, а не новые диски. И я не хочу использовать CI на багажнике (слишком частое изменение) –

ответ

0

Что об этом (не полностью протестирована):

где-то в вашем WORKDIR, в bash

svn copy ^/[email protected] ^/branches/rolling -m "Creating a rolling release branch" 
svn co ^/branches/rolling 
cd rolling 
svn list ^/tags | xargs -I {} sh -c \ 
"svn merge --accept theirs-full --ignore-ancestry ^/tags/{}; \ 
    svn ci -m \"ver {}\" \ 
    svn update \ 
" 

Это псевдоавтоматический сценарий. Если у вас несколько версий тегов, лучше выполнить команды один за другим (т. Е. Без прохождения через xargs)

Смежные вопросы