Ответ устарел , теперь у нас есть svn log -g
.
Нет, ты не сумасшедший. Вот как это работает, к сожалению.
Лучшее, что вы можете сделать, - это включить в сообщение фиксации слияние URL-адреса ветви и номера ревизии, чтобы можно было вручную просмотреть журнал ревизий для этой ветви.
(Данные все еще там, конечно).
Однако вы не знаете, какие из изменений внесли его в ствол, а какие нет.
Если в стволе не было или произошло несколько изменений, возможно, будет предложено выполнить обратное слияние (объединение из ствола в ветвь) и затем заменить ствол ветвью.
Такое рассуждение также может быть сделано для отдельных подпапок (например: заменить подпапку реализации XML-анализатора из ветви, оставить остальные).
Замена папок (с помощью svn delete, svn copy) сохранит историю изменений.
Для файлов, которые были недавно добавлены во время слияния, их историю изменений можно скопировать из ветви, если вы использовали команду svn copy. Однако не уверен, что команда слияния включает в себя поддержку этого.
Возможно, было бы интересно узнать, существует ли инструмент для svn, который выполняет "rebase" (как в git или mercurial). Это создаст отдельные коммиты для каждого изменения в ветке. С другой стороны, возможно, отдельные коммиты слишком громоздки.
Лучшая рекомендация, которую я могу дать, - это использовать хороший пользовательский интерфейс, такой как Trac, который позволяет легко просматривать историю изменений, чтобы вы могли посмотреть, что произошло в ветви.