Почему вообще происходит миграция кода? Вместо этого постройте миграцию!
Уже более 4 лет мы просто использовали филиалы. Мы взяли ствол и сделали нашу первую ветку, которая называется RB-2013.07.0.x. Это ветвь релиза на июль 2013 года. Мы заблокировали грузовик, поэтому никто не мог внести в него изменения. Все изменения были внесены в RB-2013.07.0.x. После того, как был выпущен июльский выпуск, мы заблокировали RB-2013.07.0.x, поэтому в него больше нельзя вносить изменения.
Тем временем мы также создали ветку RB-2013.09.0.x, для сентябрьского выпуска, из Транка. Разработчики работали над выпуском в сентябре, работая над выпуском в июле.
После того, как июльская версия вышла в PROD, мы объединили RB-2013.07.0.x в RB-2013.09.0.x.
Мы никогда не возвращались к Сундуку. Мы никогда ничего не переносили. И за более чем 4 года мы вообще никогда не теряли никакого кода, и, когда вы смотрели на проект, вы точно знали, для чего нужна ветка.
Если у вас есть проблема с продуктом (оперативное исправление), вы должны взять текущий выпуск продукта - скажем, RB-2013.07.0.x и создать ветку RB-2013.07.1.x, внести изменения, развернуть в prod заблокируйте ветвь и объедините ветвь с верхними ветвями - RB-2013.09.0.x. Таким образом, вы будете иметь все в курсе.
Помните, что при каждой сборке мы создавали тег и сохраняли его в каталоге TAGS.
В построенных нами сборках мы добавили номер редакции из SVN в последнюю часть номера сборки.
Сборки будут идти из dev, для тестирования, в UAT / pre-prod, а затем в prod. Если вы хотите узнать, какой код был в каждой сборке или ветви, перейдите в SVN и извлеките список журналов.