Я читал о ветвлении / слиянии с Subversion 1.5, используя отличную и бесплатную книгу Контроль версий с Subversion . Я думаю, что понимаю, как использовать клиент командной строки Subversion для выполнения действий, которые мне чаще всего нужны, а именно:
Обновление ветки с изменениями из магистрали
Из рабочего каталога филиала запустите:
svn merge http://svn.myurl.com/proj/trunk
Объединить ветвь в ствол
Из рабочего каталога транка запустите:
svn merge --reintegrate http://svn.myurl.com/proj/branches/mybranch
Однако мы используем TortoiseSVN 1.5 в качестве нашего интерфейса к Subversion. Я хотел бы знать, как лучше всего выполнить эти операции с TortoiseSVN. Новый диалог предоставляет три различных варианта в главном меню.
- Объединить диапазон ревизий
- Реинтегрировать ветку
- Слияние двух разных деревьев
Из того, что я могу извлечь, TortoiseSVN всегда выполняет svn со следующим синтаксисом.
svn merge [--dry-run] --force From_URL @ revN To_URL @ revM PATH
Кроме того, реинтеграция ветки часто заканчивается неудачей с сообщением о том, что некоторые цели не были объединены, и поэтому оно не может продолжаться, и поэтому мне пришлось использовать опцию №3.
Мои вопросы:
- Как использовать TortoiseSVN 1.5 для объединения изменений из магистрали в ветку?
- Как мне использовать TortoiseSVN 1.5 для объединения ветки с транком, с и без метода реинтеграции?
- Какой из вышеперечисленных вариантов следует использовать для каждого и почему?
EDIT
В ходе тестирования "на холостом ходу" я обнаружил, что командная строка Subversion операция
svn merge http://svn.myurl.com/proj/trunk
аналогично варианту № 1 (Объединить диапазон ревизий) в TortoiseSVN, пока я оставляю диапазон ревизий пустым.