Tortoise SVN Merge @### должен быть наследственно связан с ошибкой @###

Предыстория: устроился на работу веб-разработчиком начального уровня. Главный разработчик уходит сразу, как только я начинаю. Вся ответственность на мне. Никогда не использовал 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" в "trunk" (объединить все версии) * РАЗРЫВЫ ЗДЕСЬ *
  5. Commit "багажник"
  6. svn up и т. д.

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


person mandelbug    schedule 05.03.2014    source источник
comment
Похоже, проблема в том, что вы создали ветку dev не через копию svn, а просто имея каталог в своей структуре каталогов. Таким образом, папка dev не имеет ствола в качестве предка (она не была создана из ствола). Я не знаю о TortoiseSVN, но в IDE вы должны открыть свою папку сундука, затем выбрать ветку, а затем переключиться на новую ветку.   -  person thatidiotguy    schedule 05.03.2014
comment
@thatidiotguy Я не могу тебя отблагодарить. Я понял! Большое спасибо.   -  person mandelbug    schedule 07.03.2014


Ответы (1)


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

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

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

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

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

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

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

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

person Ron Ruble    schedule 05.03.2014
comment
И тебе спасибо. Лог тоже помог. - person mandelbug; 07.03.2014
comment
Что вы подразумеваете под воссозданием ветки dev? - person dokaspar; 10.08.2017