Разве для реинтеграции ветви с TortoiseSVN не требуется сначала синхронизировать ветку и транк?
Я думал, что понял, как использовать параметры слияния TortoiseSVN. Я подумал, что если вы не обновлялись из ствола с момента создания ветки, вы могли бы использовать объединение ряда ревизий, но если вы обновили ветку из ствола в какой-то момент, то вам нужно было синхронизировать ветку и ствол, а затем использовать либо реинтеграцию ветки (или объединить два разных дерева).
Я также подумал, что следствием этого является то, что если вы не обновляли ветку из ствола и пытались использовать реинтеграцию ветки, то вы потеряете изменения в стволе, так как ветка была создана - то есть, если вы не хотите синхронизировать два тогда вам пришлось использовать слияние ряда ревизий.
Однако мой коллега говорит, что он использует реинтеграцию филиала во всех обстоятельствах, не теряя ничего. Итак, я провел несколько тестов, и я должен согласиться с тем, что вы, похоже, не потеряете изменения в транке, зафиксированные после создания ветки, когда вы сливаетесь с помощью TortoiseSVN "реинтегрировать ветку" из ветви в рабочую копию транк, даже если вы сначала не слили ревизии транка в свою ветку. Это правильно? Каково объяснение для совета в руководстве тогда?
1 ответ
В документации TortoiseSVN, в части, касающейся опции слияния "Реинтегрировать ветку", говорится:
Все изменения соединительных линий были перенесены в ветку функций неделя за неделей, и теперь функция завершена, и вы хотите объединить ее обратно в ствол. Поскольку вы сохранили синхронизированную ветвь функции со стволом, последние версии ветки и ствола будут абсолютно идентичны, за исключением изменений вашей ветки
Я полагаю, что это та часть, которая вызывает путаницу (она меня тоже немного смутила), но потом она говорит:
Он использует функции отслеживания слияний в Subversion для вычисления правильных диапазонов ревизий и выполнения дополнительных проверок, которые гарантируют, что ветвь была полностью обновлена с изменениями магистрали. Это гарантирует, что вы случайно не отмените работу, которую другие передали в транк с момента последней синхронизации изменений.
Основываясь на этом втором фрагменте из документа и своем собственном опыте, я считаю, что безопасно использовать опцию слияния "реинтегрировать ветку". Мы используем этот метод для реинтеграции наших ветвей, и наши ветки очень редко обновляются с изменениями ствола (только если исправление в стволе устраняет проблему блокировки в ветви).
Для обновления наших веток изменениями ствола мы всегда используем "объединить диапазон ревизий".