бранчи в SVN

Wicked

Новичок
бранчи в SVN

В последнее время приходится очень активно работать с ветками в SVN. И уже не единожды столкнулся с подобной проблемой:

Предположим, мы сделали бранч mybranch от trunk'а. В trunk мы переименовали какую-то функцию (myfunction -> myfunction2), и проапдейтили все существующие вызовы. В бранче mybranch добавили новый функционал (*), который использует myfunction, все еще существующую в бранче. Оба бранча аккуратно тестируются ручками и признаются рабочими.

Тогда после мержа mybranch обратно в транк, получится такая ситуация, что в транке есть функция myfunction2, которая используется во всех местах кроме, собственно, (*). А это Fatal error: call to unknown function. Т.е. два рабочих бранча после слияния становятся нерабочим.

При этом, разумеется, никаких конфликтов не возникает.

С юнит-тестированием этот проект подружить, к сожалению, не удалось. Иначе бы этот вопрос у меня не возник :)

Что посоветуете? Как быть?
 

StUV

Rotaredom
imho, такие баги правятся только руками
в любом случае, после мержа двух веток разработки их необходимо тестировать заново

+
лучше ессно в транке вообще ничего не править и вести рефакторинг/разработку в одном бранче
 

Crazy

Developer
StUV, лично я сторонник правок непосредственно в транке -- при условии, что коммиты делаются не реже раза в час-два и после каждого выполняется модульное тестирование версии, лежащей в транке.

Долгие сомнительные операции -- в бранчи.
 

StUV

Rotaredom
бывает и так
зависит от.... ;)

если ведется параллельная разработка двух или более проектов, использующих одну библиотеку, то для проектного кода бывает вообще достаточно только транка, а вот под код либы режутся свои бранчи для каждой группы разработчиков, с периодическим мержем в транке после тестирования в бранче
 

Crazy

Developer
О! Лично знаю людей, которые в этой ситуации принципиально обошлись без бранчей и сделали хитрый инструментарий для копирования туда-сюда общих и измененных файлов разных проектов. Из общения с ними и изучения их опыта я вынес заключение: "если задаться целью научить оператора машинного доения маникюрными ножницами через задницу удалять зубы, то можно выработать много интересных технологий и получить нехилый экспириенс". :cool:

Но с бранчами все проще. :)
 

StUV

Rotaredom
был опыт разработки двух проектов с общей либой в одном бранче
в итоге, после срыва сроков выхода из тестирования на одном из них, пришлось разъехаться на разные бранчи
теперь никому в голову не приходит коммитить что-то в trunk этой либы - обмен кодом между бранчами только через merge в транке
 
Сверху