Быстрое предисловие.Я пролил тонны и тонны статей, но, похоже, ничего не соответствует моей ситуации и актуальной информации.
Моя программа недавно перешла с CVS на SVN 1.6.Мы прочитали книгу RedBeans и приняли рабочий процесс, изложенный здесь .Проще говоря:
- Создать новую ветвь для каждого запроса на изменение,
svn copy ^/trunk ^/branches/cr####
- Выполнять работу и фиксировать
- Регулярно объединяться с транком,
svn merge ^/trunk
- Переключиться на транк и реинтегрировать
svn merge --reintegrate ^/branches/cr####
Это прекрасно работало до недели назад.Теперь выполнение тех же шагов вызывает бесчисленные конфликты при слиянии, но с файлами, которые не были изменены локально.Например, скажем, кто-то еще создал ветку cr1234 и внес изменения в foo.c.Между тем, прежде чем ветка cr1234 была реинтегрирована в ствол, я создал другую ветку, cr5678.Теперь в моей ветке cr5678 я модифицирую bar.c и фиксирую ветку.В какой-то момент ветка cr1234 была реинтегрирована в транк, поэтому в транке есть обновление для foo.c, но не в моей ветке cr5678.Прежде чем я смогу реинтегрировать свою ветку cr5678, я выполняю слияние, как указано выше, svn merge ^/trunk
.Вот странная вещь, foo.c будет рассматриваться как конфликтующий, хотя я этого не трогал.Это происходит для 80% + объединяемых файлов.Кроме того, часто такие же конфликты возникают при реинтеграции из ветви в магистраль.Это похоже на то, что svn должен быть в состоянии понять.
Это работало отлично в течение нескольких недель.Я подозреваю, что первая ветка, у которой были проблемы, имела svn переименования в этом.Я не уверен, произошло ли это или нет, но теперь кажется, что все испорчено.Я не вижу файлов со свойством svn: merginfo, поэтому я не знаю, почему существуют конфликты.
Мы все новички в Subversion, поэтому я боюсь, что мы каким-то образом повредили хранилище, и я не уверенкакой курс мы должны взять.Любые предложения, чтобы попытаться выяснить, что может вызвать конфликты, даже если слияние должно быть тривиальным?