Subversion: больше файлов, чем ожидалось при слиянии ветки с магистралью
У меня есть ветвь, которую я хочу слить в ствол.
-
Прежде всего я сливаю ствол в ветвь, чтобы он обновился.
-
После этого я обновляю Транк (локально) также, чтобы иметь его с последними изменениями.
-
Следующий шаг-слить ветку в ствол.
Когда я вижу файлы, которые изменились в моем локальном транке (до фиксации), я вижу, что у меня есть файлы из моего проекта, но также и файлы, которые не из моего проекта.
Вероятно эти файлы приходят от плохого слияния из ствола в ветвь.
Какой сейчас лучший вариант? Объединить все файлы из первой редакции trunk в ветку (когда ветка была создана)? Я думаю, что таким образом получу много конфликтов. Создать новую ветку из ствола и поместить в эту ветку файлы из моего проекта? Это означает повторное тестирование.
Есть идеи?
Спасибо, что уделили мне время
Edit: только файлы фиксации моего проекта могут быть лучшим / самым быстрым решением ?? (90 файлов для фиксации только 45 файлов из моего проекта)
1 ответ:
Те файлы, которые были изменены, изменено ли содержимое файлов или изменены их значения свойств?
Всякий раз, когда я слышу, что кто-то говорит мне, что слияние изменило слишком много файлов, я нахожу, что проблема обычно заключается в свойствеsvn:mergeinfo
. Subversion отслеживает слияния, устанавливая это свойство. Если вы всегда делаете слияние в корне проекта, только корневой каталог будет иметь этот набор свойств, и все файлы будут совместно использовать его. Если вы выполняете слияние отдельных файлов, то все эти файлы будут иметь набор свойствsvn:mergeinfo
, и каждый раз, когда вы делаете слияние, каждый из этих файлов будет изменен, так как файлsvn:mergeinfo
на всех этих файлах также должен быть изменен.Что бы вы ни делали, не возвращайте эти файлы, чтобы исключить слияние. От этого становится только хуже.
svn:mergeinfo
покажет, что эти файлы не были объединены для этих ревизий, и в следующий раз, когда вы сделаете слияние, Subversion повторит слияние и обновитsvn:mergeinfo
еще раз.