Черепаха SVN Слияние "@### должно быть наследственно связано с @###" Ошибка


Предыстория: Получил работу веб-разработчика начального уровня. Главный разработчик уходит сразу, как только я начинаю. Вся ответственность на мне. Никогда не использовал SVN. Иду вслепую.

Проблема:
Я продолжаю получать ошибки, такие как

'svn://svn/svn/xxx/project_name/branches/dev@330' must be
ancestrally related to 'svn://svn/svn/xxx/project_name/trunk@326'

Процесс, с помощью которого я начинаю новый проект, таков:

  1. Создайте каталог для проекта на моем компьютере с вложенными папками:
    project_name/branches
    project_name/branches/dev
    project_name/tags
    project_name/trunk

  2. Щелкните правой кнопкой мыши корневой каталог проекта, выберите корневой каталог моего проекта и Add его в хранилище

    (Все, что следует, - это то, что я должен сделать для текущих проектов, и в них это не вызывает проблем, но прерывается для новых проектов при слиянии)

  3. Commit " филиал "dev"

  4. Merge "dev" в "магистраль" (Объединить все редакции) * ЗДЕСЬ ПРЕРЫВАЕТСЯ *
  5. Commit "ствол"
  6. svn up и т.д.

Не будучи знакомым с SVN, я переживаю действительно трудные времена с этим. Как я уже сказал, выполнение 3-6 в существующих проектах работает, но в новых я получаю ошибку must be ancestrally related to при слиянии. Итак, что я делаю не так? Все и любая помощь очень ценится.

Author: Josh I, 2014-03-05

1 answers

[thatidiotguy][1], вероятно, прав в том, что не создает копию из транка.

Если вы используете svn log --verbose --stop-on-copy в ветке разработки, самая ранняя запись должна показывать, откуда вы скопировали ветку.

Функция svn журнала TortoiseSVN работает таким же образом; остановить копирование - это флажок в окне журнала.

Если вы не создали его из копии, то он не может быть объединен обратно.

Вам нужно будет воссоздать ветку dev и повторно применить свой изменения.

Обновление: Под "воссозданием ветви разработки" я подразумеваю создание новой ветви для разработки, которая является фактической копией (ветвью) svn от магистрали. Если вы создадите ветвь с помощью svn copy trunk/[вложенная папка приложения] ветвь/[вложенная папка приложения - имя ветви], svn запишет исходную версию источника. Это позволяет интеллектуальное объединение изменений в магистральной/базовой версии в ветку (для исправления дефектов, добавления функций и т.д.) Как только копия будет сделана, вы можете скопировать измененные файлы из исходного источника и зафиксируйте их как обычные изменения в коде.

Как заменить ветку в subversion?

Https://stackoverflow.com/users/821722/thatidiotguy

 6
Author: Ron Ruble, 2017-08-11 15:49:59