Я работаю в команде с большим количеством людей, которые довольно незнакомы с понятиями систем контроля версий и просто делают то, что кажется работающим, методом проб и ошибок.Кто-то создал «ветку» из ствола, которая не связана с стволом по наследству.Я предполагаю, что все было примерно так:
- Они создали папку в
branches
. - Они извлекли весь код из транка в какое-то место на своем рабочем столе.
- Они добавили весь этот код во вновь созданную папку, как будто это была куча совершенно новых файлов.
Таким образом, хранилище не знает, что весь этот код на самом деле является копиействола.Когда я просматриваю историю этой ветви в TortoiseSVN и снимите флажок в поле «Остановить при копировании / переименовании», в разделе «Копировать из пути» нет ревизии, которая имеет ствол (или любой другой путь)."column.
Затем они внесли множество изменений в свою" ветку ".Тем временем другие делали много изменений в багажнике.Мы пытались сделать merge
и, конечно, это не работает.Потому что ствол и поддельная ветвь не связаны по наследству.
Я вижу только два способа решения этой проблемы:
- Пройдите по логам на "ветке", посмотрите накаждое внесенное изменение и вручную применяйте каждое изменение к стволу.
- Просмотрите журналы на стволе, посмотрите на каждое изменение, которое было сделано между ревизией 540 (когда была создана «ветвь») и HEADи вручную примените каждое изменение к «ветви».
Это включает в себя 7 ревизий в одну сторону или 11 ревизий в другую, так что ни одна из них не является на самом деле такой ужасной.Но есть ли способ заставить репозиторий «осознать», что ветка действительно связана с предками, даже если она была создана неправильно, чтобы мы могли воспользоваться встроенной функциональностью слияния в Eclipse / TortoiseSVN?
(Вы можете задаться вопросом: почему ваша компания наняла этих людей и позволила им получить доступ к хранилищу SVN, не убедившись, что они знали, как правильно его использовать в первую очередь ?! Мы не знали - это школьное задание, которое являетсясотрудничество между двумя разными классами - ученикам из низшего класса был дан очень краткий «обзор» SVN, который ничему не научил их. Я попросил всех в группе, пожалуйста, ПОЖАЛУЙСТА, прочитайте svn book , и я позабочусь о том, чтобы мы (чуть более опытная половина команды) внимательно следили за хранилищем, чтобы это больше не повторилось.)