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 няма trunk като предшественик (не е създадена от trunk). Не знам за 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 в клона за разработка, най-ранният запис трябва да показва откъде сте копирали клона.

Svn log функцията на TortoiseSVN работи по същия начин; спиране при копиране е квадратче за отметка в прозореца на регистрационния файл.

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

Ще трябва да създадете отново клона за разработчици и да приложите отново промените си.

Актуализация: Под „пресъздаване на клона за разработчици“ имам предвид създаване на нов клон за разработка, който е действително 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
Какво имате предвид под пресъздаване на клона за разработчици? - person dokaspar; 10.08.2017