Реорганизация хранилища Subversion с филиалами - PullRequest
2 голосов
/ 05 мая 2009

Я пытаюсь реорганизовать репозиторий 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 ветка плюс ствол в любой момент времени.

Ответы [ 3 ]

1 голос
/ 06 мая 2009

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

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

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

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

0 голосов
/ 05 мая 2009

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

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

0 голосов
/ 05 мая 2009

Укажите подробности шагов 3 и 4. Слияния Subversion не совпадают с копиями.

...