Как удалить устаревшие свойства svn:mergeinfo при реинтеграции?

Я хотел работать над небольшим набором изменений независимо от других моих разработок в проекте. Я использовал это как руководство.

Я начал с выполнения svn cp из / trunk / app / module в / branch /pete/feature-branch, это был r393

После некоторых изменений и слияния туда и обратно между стволом и ответвлением, чтобы держать вещи в актуальном состоянии, я закончил с моей функцией и вернулся к работе над стволом.

Через пару ревизий я решил, что, возможно, мне следует очистить свою ветку функций, поэтому я попытался ее реинтегрировать.

  1. Я проверил свежую копию функции ветви и ствола.
  2. Я слил изменения в стволе в ветку функций и зафиксировал их
  3. Затем я сделал слияние --reintegrate ^/branch / pete / feature-branch на стволе, в результате чего получился r434

С точки зрения кода все выглядит нормально, но теперь у моего транка / приложения / модуля все еще есть свойство svn:mergeinfo.

$ svn pg svn:mergeinfo
/branches/pete/feature-branch:393-433

Из того, что я понимаю, svn:mergeinfo должен быть пустым, и эти ревизии должны быть "исключены" или это нормально?

1 ответ

Решение

Эта информация в подпапке показывает, что вы (случайно?) Слились в подпапку (не в транк, а в / trunk / app / module).

Subversion теперь знает, что больше не будет сливать эти ревизии из этой ветки. Обычно вы должны объединять только самую верхнюю папку, поэтому mergeinfo находится только в этой папке.

SVN-Team не рекомендует объединять только подкаталог ( см. Тему книги SVN здесь)

Избегайте слияний поддеревьев и слияний поддеревьев. Выполняйте слияния только в корне ваших веток, а не в подкаталогах или файлах (см. Раздел "Слияние поддеревьев и слияние поддеревьев").

Тем не менее, все слияния возможны, но в итоге вы получите много (разных) слияний на разных уровнях папок, что впоследствии затруднит понимание того, что происходит и почему SVN ведет себя таким образом.

Также всегда можно (не рекомендуется!) Удалить свойство merge-info, чтобы "сбросить" функцию слияния. В основном это делается также путем удаления ветки. Тогда риск повторного слияния обычно незначителен.

Другие вопросы по тегам