Как я могу объединить мои файлы, когда структура папок изменилась
Я хочу провести основную реорганизацию кодовой базы, но я не смогу продолжить, если не смогу предоставить способ, которым можно легко применить исправления ствола к ветвям, которые были сделаны до реорганизации.
Один из подходов, который я рассматривал, состоял в том, чтобы применить реорганизацию ко всем ветвям поддержки, но это потенциально дестабилизирует.
Предпочтительный подход заключается в предоставлении инструмента слияния, который может учитывать обновленные местоположения файлов. Любые предложения о том, как я мог бы реализовать это?
2 ответа
Я в той же ситуации, когда ветки не всегда связаны только с обслуживанием или исправлениями. Мы часто должны поддерживать несколько активных ветвей стабилизации и должны объединяться между ними. У нас нет роскоши смешивать возможности для непрерывной интеграции в магистрали.
Мы прибегаем к выполнению слияний на более детальном уровне. Если папка перемещена, выполните слияние непосредственно из старого местоположения в одной ветви в новое местоположение в другой ветви. Я также настоятельно рекомендую вам использовать "svn move", чтобы сделать оригинальную реструктуризацию, это гарантирует понимание предков.
В любом случае, это не приятно и очень вручную. Ведите хорошие записи.
Мой вопрос будет таким: почему вы хотите объединить реорганизацию обратно в филиалы? Идея, лежащая в основе ветвей, заключается в том, что они (как правило) находятся в режиме обслуживания (например, транк - это версия 4, и вам нужно вернуться и исправить версию 3, вы делаете это в ветке версии 3), или чтобы люди выполняли какую-то побочную работу, которую они не обязательно иметь сразу в багажнике.
Если вы делаете полную перестройку кодовой базы, это похоже на хорошее время, чтобы сломать некоторую обратную зависимость в коде. Если вы этого не сделаете, вы можете ограничить, какой рефакторинг вы действительно можете выполнить.