Хотелось бы, чтобы у меня был хитрый трюк, чтобы рассказать вам, как добиться перебазирования в SVN, но я всегда избегал ручного обновления ветки с изменениями магистрали в SVN, в основном из-за сложностей, требующих ручного выбора вишни, о котором упоминает jdehaan.
Я обычно вместо этого следую практике объединения изменений из ветви в ствол, удаления ветви и последующего воссоздания ветви из ствола. Это позволяет мне обновить / перебазировать мою функциональную ветвь, но с иногда неудачным побочным эффектом, что любые предыдущие изменения из этой ветки теперь являются частью магистрали. По этой причине я придерживаюсь этой практики только тогда, когда ветвь функции находится в стабильной и пригодной для использования точке, но я все еще хочу продолжить работу над этой функцией, чтобы в дальнейшем выполнить более масштабную задачу.
Я бы предпочел, чтобы обновление ветки путем объединения изменений в магистрали обратно в ветвь не приводило к тому, чтобы последующие объединения реинтеграции из этой ветки вытягивали эти пересмотренные ревизии во время процесса. Это должно быть возможно на основе свойств merge-info, но в соответствии с тем, что заявляет jdehaan, и чего я боялся, так это того, что для этого все еще требуется сбор вишни.
Обратите внимание, что правильная реализация перебазирования также должна учитывать примеры корпусов лестниц, когда ветвь сделана из другой ветки.
Обновление: Согласно документации Subversion представляется, что при использовании опции - реинтеграция эта Subversion должна иметь возможность правильно реинтегрировать работу, выполненную в ветвление таким образом, чтобы помнить о любых возможных слияниях обновления, которые могли быть сделаны для внесения базовых изменений в ветку. Конечно, технически это немного отличается от перебазирования, но я думаю, что оно достаточно схоже в использовании, что его можно назвать перебазированием.