Как правильно объединить 2 ветки - PullRequest
2 голосов
/ 29 сентября 2011

У меня есть мастер-ветка с именем trunk, и ее ветвь с именем prototype была создана.

С тех пор, как произошла ветвь, коммиты были выполнены как в trunk, так и prototype(иногда даже те же файлы).

Каков наилучший способ обновить прототип, чтобы он содержал все новые коммиты из транка, не теряя при этом прототип-коммиты?

Я только что попытался Щелкните правой кнопкой мыши на моей папке проекта -> Команда -> Объединить , выберите trunk как От: и мой prototype как Кому: .Я также проверил оба Merge из HEAD ревизии .

Но после этого некоторые новые файлы prototype отсутствовали.

Ответы [ 2 ]

2 голосов
/ 29 сентября 2011

Прежде всего, объединение должно быть выполнено на рабочей копии ветки-прототипа.

Слияние заключается в применении diff между двумя версиями одной ветви к другой ветви. Таким образом, From и To должны указывать на ствол. Вы хотите применить в ветке-прототипе изменения, сделанные в стволе, от ревизии X до ревизии Y.

Это очень хорошо объяснено в книге SVN .

0 голосов
/ 29 сентября 2011

Вы должны сначала обновить свою ветку, чтобы получить изменения, так как вы разветвились (это проще, если вы делаете это часто).Как добиться этого, ответили здесь .Вкратце: вы указываете не разные поддеревья репозиториев, а диапазон ревизий, поэтому адреса from и to в большинстве случаев совпадают.

После того, как ветка работает правильно со всеминовые файлы из ствола вы должны зафиксировать ветвь и затем объединить изменения обратно в ствол с тем же механизмом.Когда ветка закрывается после интеграции в ствол, вы должны использовать «реинтегрировать ветку», но это сделает ветку доступной только для чтения.

...