Слияние в Subversion всегда выполняется локально. Филиал, который вы хотите объединить, должен быть проверен с чистой проверкой. То есть, он должен быть обновлен без каких-либо локальных изменений. Затем вы объединяете в нее другую ветку и фиксируете свои изменения.
A Объединение не является дубликатом конкретной отрасли. Слияние обычно осуществляется в три режима. У вас есть филиал, в который вы сливаетесь (так называемый ваш) ветвь, из которой вы сливаетесь (от их) и последний общий предок (LCA). Последнее важно.
Если смена произошла на вашей ветке, она не затрагивается во время процесса слияния. Алгоритм слияния знает это, потому что есть разница между вашим и LCA. Если есть разница между LCA и их, это считается для изменения.
Если я понимаю, у вас есть:
branch1
был взят из ствола.
branch2
был взят из branch1
.
Что вы пытаетесь объединить? Вы хотите объединить и branch1
, и branch2
в багажник.Это должно быть возможным, если вы скопированыtrunk
в branch1
через Subversion и скопированыbranch1
в branch2
через Subversion. Таким образом, Subversion знает, что две ветви связаны в их истории.
Если вы создали ветку, использовали Windows для копирования файлов и добавили файлы, у вас нет истории между двумя ветвями, а слияние сложнее.
Можно ли слить изменения branch2
в branch1
? Если да, то я хотел бы сделать что-то вроде этого:
- Checkout
branch2
- Merge
branch1
в branch2
и зафиксировать эти изменения. branch2
будет иметь все изменения в branch1
.
- заказ
trunk
- Merge
branch2
в trunk
. Теперь Trunk будет иметь все изменения как в branch1
, так и в branch2
.
Имеют ли обе ветви общую ветвь/сундук предков? – Micha
Да. Первый - это Багажник, а другой - ветвь от него. – deetz
Слияние с (любой) веткой на туловище (реинтеграция ветвей) - это не «Слияние двух разных деревьев» и ** никогда не должно быть **. Попытайтесь хотя бы раз прочитать 'svn help merge' и TortoiseSVN помощь для слияния !!! –