Во время процесса слияния кода мы столкнулись с проблемой перезаписи или даже удаления кода, поэтому мы просим предложения.
- Мы - команда из шести разработчиков в двух разных офисах, использующих Tortoise SVN.
- У нас есть 12 личных веток, по 2 на каждого разработчика:
dev1Client
, dev1Server
, ..., dev6Client
, dev6Sever
. - У нас есть общие ветви
QA_Client
, QA_Server
, Release_Client
, Release_Server
.
Шаги, которым мы следуем:
Все разработчики фиксируют работу в своих ветвях, а затем ониобъедините их изменения в QA_Client
и QA_Server
.
QA Build подготовлен из QA_Client
и QA_Server
.
После прохождения тестов администратор создает тег с номером выпуска и объединяет код с Release_Client
и Release_Server
.
Aпару раз код шага 1 был перезаписан или удален в процессе слияния.Основная причина, по которой мы обнаружили, заключается в том, что разработчики не синхронизируют свои ветви с QA_Branches.
Например, Dev1 и Dev4 объединили код с ветками QA*
, а остальные разработчики не синхронизировали свои ветки с QA*
.После этого Dev2 может попытаться объединить свой код с QA*
, чтобы получить некоторые предупреждения о конфликтах.Он неправильно интерпретирует эти предупреждения и переписывает некоторые из предыдущих изменений, внесенных Dev1 и Dev4.