Subversion: больше файлов, чем ожидалось при слиянии ветки с магистралью


У меня есть ветвь, которую я хочу слить в ствол.

  • Прежде всего я сливаю ствол в ветвь, чтобы он обновился.

  • После этого я обновляю Транк (локально) также, чтобы иметь его с последними изменениями.

  • Следующий шаг-слить ветку в ствол.

Когда я вижу файлы, которые изменились в моем локальном транке (до фиксации), я вижу, что у меня есть файлы из моего проекта, но также и файлы, которые не из моего проекта.

Вероятно эти файлы приходят от плохого слияния из ствола в ветвь.

Какой сейчас лучший вариант? Объединить все файлы из первой редакции trunk в ветку (когда ветка была создана)? Я думаю, что таким образом получу много конфликтов. Создать новую ветку из ствола и поместить в эту ветку файлы из моего проекта? Это означает повторное тестирование.

Есть идеи?

Спасибо, что уделили мне время

Edit: только файлы фиксации моего проекта могут быть лучшим / самым быстрым решением ?? (90 файлов для фиксации только 45 файлов из моего проекта)

1 2

1 ответ:

Те файлы, которые были изменены, изменено ли содержимое файлов или изменены их значения свойств?

Всякий раз, когда я слышу, что кто-то говорит мне, что слияние изменило слишком много файлов, я нахожу, что проблема обычно заключается в свойстве svn:mergeinfo. Subversion отслеживает слияния, устанавливая это свойство. Если вы всегда делаете слияние в корне проекта, только корневой каталог будет иметь этот набор свойств, и все файлы будут совместно использовать его. Если вы выполняете слияние отдельных файлов, то все эти файлы будут иметь набор свойств svn:mergeinfo, и каждый раз, когда вы делаете слияние, каждый из этих файлов будет изменен, так как файл svn:mergeinfo на всех этих файлах также должен быть изменен.

Что бы вы ни делали, не возвращайте эти файлы, чтобы исключить слияние. От этого становится только хуже. svn:mergeinfo покажет, что эти файлы не были объединены для этих ревизий, и в следующий раз, когда вы сделаете слияние, Subversion повторит слияние и обновит svn:mergeinfo еще раз.