Объединение SVN из транка в ветку после изменения имени директории транка - PullRequest
1 голос
/ 01 сентября 2011

У меня есть ситуация, когда я разветвился в транке, и после нескольких дней разработки в моей ветке, кто-то еще изменил имя директории проекта в транке. Что-то вроде этого: из / Project / Directory / trunk / old_dir_name в / Project / Directory / trunk / new_dir_name

Это вызвало у меня множество проблем (конечно).

Глядя на запись в журнале, когда он это сделал, все, что он показывает, это: Действие Путь Копировать из пути Редакция Удалено / Проект / Каталог / trunk / old_dir_name Добавлено / Проект / Каталог / trunk / new_dir_name / Проект / Каталог / trunk / old_dir_name 12345

Когда я попытался выполнить тестовое слияние транка с моей веткой, чтобы у меня были последние обновления, я получил конфликтующую ошибку в одном файле. Если я пытаюсь выполнить тестовое слияние для последней ревизии только того файла, который я получаю: репозиторий ошибок навсегда переместился в '... /! Svn / bc / 13649 / Project / Directory / old_dir_name / trunk'.

Как мне это исправить, чтобы я мог обновлять свою ветку по мере необходимости?

(Если это имеет значение, мы используем интерфейс TortoiseSVN).

1 Ответ

0 голосов
/ 01 сентября 2011

Это хорошо известная ошибка svn с 2002 года - см. здесь .

Например, если вы переименуете файл / каталог (или файл в нем) в ветке, а файл / каталог (или файл в нем) изменился в транке, у вас возникнет проблема при объединении ветви в транк.

Почему это происходит?Все просто - svn rename реализован как удаление файла (a) и добавление его с новым именем (a ').Так что (a ') на ветке в моем примере и (a) не наследуются от одного и того же файла.Однако svn пытается свести к минимуму проблему и добавляет в тег (a ') информацию о (a), поэтому, если вы войдете в svn, войдите (a), вы увидите действие переименования, а также изменения (a).

...