Мы создали ответвление из соединительной линии, на которой был сделан основной рефакторинг. Между тем соединительная линия усовершенствовала несколько изменений с некоторыми мерами. Мы не хотим эти изменения на ответвлении, таким образом, мы не хотим к слиянию "захвата" соединительную линию к ответвлению, потому что мы не хотим смешивать старый и новый код. Но без этого я не могу повторно интегрировать ответвление назад к соединительной линии.
Существует ли способ наложить ответвление по соединительной линии "как есть"?
(Идея, которую я рассмотрел, состоит в том, чтобы отменить ("обратное слияние") соединительную линию назад к пересмотру, где ответвление запустилось, и затем безопасно объединить его на ответвлении - ничего не должно происходить. Затем я могу повторно интегрировать. Что Вы думаете?)
Предполагая, что вы не боитесь потерять эти изменения, это приемлемое решение, хотя вы можете просто переименовать текущую магистраль в ветвь и переименовать ветка в ствол:
svn move https://path/to/repo/trunk https://path/repo/branches/newbranchname
svn move https://path/to/repo/branches/refactoring https://path/to/repo/trunk
Хотя вы действительно уверены, что не хотите вносить изменения из ствола? Возможно, вы захотите очень внимательно обдумать это. Даже если вы проделали много рефакторинга, если была проделана полезная работа над основной веткой, вы все равно можете посмотреть на нее очень внимательно, чтобы достигнутый прогресс не пропал даром.
Вы можете использовать, как вы упомянули, обратное слияние. Оформить заказ на ствол
svn merge -rHEAD:RevisionTheBranchWasCreated ^/trunk
. Это отменит все изменения, внесенные вами после создания ответвления. После этого слияние должно пройти без проблем.
Обновление: ^ / trunk
будет работать только в Linux. В Windows вам потребуется ^^ / trunk
.