SVN Merge с --reintegrate жалуется на отсутствующие диапазоны, но Mergeinfo кажется правильным

У меня есть проект со следующей структурой

^/project/trunk
^/project/branches/mybranch

где текущим заголовком является версия 1048. Ветвь была скопирована из транка в r523. ствол был объединен с mybranch с результатом r1048. Объединенная информация о ^/project/branches/mybranch дает

/project/trunk:523-1047

и mergeinfo транка не имеет записей, упоминающих что-либо из ^/project/branches/mybranch, На самом деле, как в стволе, так и в ветвях также содержатся слияния, параллельные mybranch но эти слияния выглядят абсолютно идентичными в обоих выходных данных.

Теперь я иду в мою рабочую копию ствола и пытаюсь выдать

svn merge --reintegrate ^/project/branches/myproject

Я получаю сообщение об ошибке:

svn: Reintegrate can only be used if revisions 523 through 1048 were previously merged from file:///home/svn/project/trunk to the reintegrate source, but this is not the case:
  project/branches/mybranch/src
    Missing ranges: /project/trunk/src:523-1047

Это странно, потому что информация о слиянии в моей папке филиала говорит мне, что 523-1047 были правильно объединены из магистрали в ветку. Как обстоят дела с этой подпапкой? src это каталог, который явно существует как в транке, так и в ветке.

Я думаю, что здесь что-то подозрительное. Если я загляну в mergeinfo mybranch/src через svn pg svn:mergeinfo ^/project/branches/mybranch/src@HEAD Я ничего не получаю вообще. Если я смотрю на багажник / SRC однако (svn pg svn:mergeinfo ^/project/trunk/src@HEAD) Я получил

/project/branches/mybranch/src:784

Так что, кажется, что кто-то сделал вишневую ветку от ветки до ствола. Однако это не появляется в самой папке транка.

В этом проблема? И самое главное: как я могу это вылечить??

2 ответа

Решение

В этом проблема?

Да, именно так - слияние поддеревьев позже всегда смущает реинтеграцию

И самое главное: как я могу это вылечить??

Удалить mergeinfo из /project/trunk/src

Вот очень похожая тема, на которую вы могли бы взглянуть:

Реинтеграция может использоваться только в том случае, если ревизии были ранее объединены URL для реинтеграции источника

Особенно этот ответ Paul Whipp мне очень помог, когда я столкнулся с той же проблемой и не хотел удалять mergeinfo, потому что это звучало как обходной путь, а не как "реальное" исправление.

Вкратце: попробуйте объединить недостающую информацию вручную для этого конкретного файла / папки (так, как предлагает svn). Работал как шарм для меня.

См. Ответ Паулса для соответствующих примеров кода и т. Д.

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