Реорганизация репозитория Subversion с помощью веток

Я пытаюсь реорганизовать репозиторий Subversion 1.6, в котором есть ветки. Похоже, что если вы перемещаете файл в ствол, и этот файл имеет изменения в ветке, когда эти изменения объединяются в ветку, их больше нет.

Я постараюсь проиллюстрировать ниже:

1. Repo before move
    trunk/a.txt
    trunk/b.txt
    branches/feature/a.txt
    branches/feature/b.txt

2. File branches/feature/b.txt is changed.

3. Repo reorganized
    trunk/a.txt
    trunk/new-location/b.txt
    branches/feature/a.txt
    branches/feature/b.txt

4. Changes from trunk merged to feature
    trunk/a.txt
    trunk/new-location/b.txt
    branches/feature/a.txt
    branches/feature/new-location/b.txt

Папка ветки / функция является копией магистрали.

По завершении шага 4 все изменения в файле b.txt из функциональной ветки больше не существуют.

Я думал, это исправлено в svn 1.5?

Если это не вариант, мне все равно нужно как-то реорганизовать весь мой репост. Перемещение, когда все ветви были объединены в ствол, не вариант. У меня всегда есть как минимум 1 ветка плюс ствол одновременно.


person Nathan Lee    schedule 05.05.2009    source источник
comment
Вы задавали этот вопрос в списке рассылки Subversion? У вас может быть больше шансов получить ответ там.   -  person lothar    schedule 05.05.2009
comment
Я не. Я напишу там и посмотрю, что у меня получится.   -  person Nathan Lee    schedule 05.05.2009


Ответы (3)


Объединение перемещенных файлов - это известная проблема. Однако Subversion предупреждает вас этим сообщением, если не находит цель слияния:

Пропущено отсутствующее целевое значение: 'baz.c'

Если вы видите это сообщение, возможно, вам нужно принять меры вручную. Если файл был перемещен и в новое место должны быть внесены изменения, вы можете рассмотреть возможность слияния поддерева между переименованными объектами.

Мне неизвестна какая-либо система контроля версий, которая автоматически выполняет такое слияние. edit: похоже на mercurial, например объединяет делать копии.

person Wim Coenen    schedule 05.05.2009
comment
К сожалению, похоже, что это единственный способ реорганизации. Если у вас много веток, то и работы у вас будет много. - person Nathan Lee; 07.05.2009

Опишите подробно шаги 3 и 4. Слияние Subversion - это не то же самое, что копии.

person eel ghEEz    schedule 05.05.2009

Убедитесь, что вы используете метод переименования SVN для шага 3, чтобы убедиться, что расположение файла остается связанным с будущими изменениями.

(Я вытаскиваю это из ... ну, я не уверен в следующем) При перемещении / переименовании файлов возникает проблема с предками. Убедитесь, что при объединении опция игнорировать предков не выбрана.

person Paul Alexander    schedule 05.05.2009