Почему SVN не объединяет транк, когда субдиректории транка были объединены? - PullRequest
2 голосов
/ 30 января 2012

У меня действительно раздражающая проблема с SVN merge. Я хочу слить ствол в ветку. Обычно это довольно просто, но на этот раз из-за серьезных изменений мне пришлось выполнять пошаговую обработку, а SVN, похоже, этого не оценивает.

Допустим, я создал ветку с ревизией A , и теперь хранилище находится на ревизии B . Сундук содержит несколько sub dir, скажем, S1 , S2 . Чтобы дать вам представление о сложности, B составляет ~ 1000 ревизий после A, со многими изменениями в стволе. Было много конфликтов и древовидных конфликтов.

Для поэтапной обработки я выбираю сначала слияние S1, затем S2, затем я надеялся, что слияние B произойдет немедленно. Я использовал команду svn merge https://myrepo/trunk/S1 myBranchWorkingCopy/S1

Слияние S1 было болезненным, но успешным. То же самое для S2.

Полный надежд, я запускаю пробную версию svn merge --dry-run https://myrepo/trunk myBranchWorkingCopy, ожидая увидеть только обновленные свойства. Я был слишком усердным ... Вместо этого, КАЖДЫЕ конфликты (дерево или текст), которые я разрешил для S1 или S2, должны быть разрешены снова ...

Мой вывод

Если транк содержит S1 + S2, объединен (S1) + объединен (S2)! = Объединен (транк) ?!?

Я что-то пропустил? Как я могу сказать SVN, что все дочерние каталоги были объединены и что магистраль должна быть объединена немедленно?

Спасибо

1 Ответ

1 голос
/ 30 января 2012

Это должно работать, сливаясь с подпапками с флагом --record-only, чтобы Subversion знала, что изменения есть с обеих сторон. См. Раздел «Сохранение реинтегрированной ветки» в разделе «Расширенное слияние» книги Subversion.

(Возможно, сначала попробуйте на небольшом образце.)

...