Вопрос

Я пытаюсь реорганизовать хранилище 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

Папка Branches / Feature является копией ствола .

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

Я думал, что это было исправлено в SVN 1.5?

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

Это было полезно?

Решение

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

  

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

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top