Поддержка двух веток проекта

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

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

Вопрос: как бы мне вливать полученные изменения в мою ветку проекта?

Была идея сделать две ветки old, new. Самому вести ветку new, а полученные исходники вливать в ветку old. Потом формировать diff между двумя коммитами в old и заливать этот diff в new. Но если я правильно понимаю, как только изменится нумерация строк в одной из веток, то diff перестанет накатываться. Или я ошибаюсь?

В общем хочу узнать, как эту задачу можно решить? В идеале на svn. Если нет, то могу развернуть любую другую систему контроля версий.


Ответы (1 шт):

Автор решения: S.H.

Мне кажется, Вам в комментариях сделали довольно много полезных замечаний.

Я бы присоединился к замечанию "обложить весь код тестами, как селедку майонезом".

Я в своё время столкнулся с тем, что в SVN пререстали мержиться ветки в моём проекте (немного, около 100 тысяч строк), и именно это было последней каплей для перехода на git (и это было уже лет семь назад).

Как бы я решал задачу в git:

  1. Вы можете импортировать туда историю из svn. Я при переезде так и сделал. Руководств на эту тему - масса, и, кажется, github даже поддерживает импорт таких репозиториев. Но если до сих пор vcs не использовалась - Вам это не актуально.

  2. Когда у Вас есть "текущий мастер" - то вы работаете в двух направлениях:

  • сами создаётё ветку под конкретный рефакторинг, потм вливаете её в мастер
  • когад Вам присылают архив - вы опять таки, создаёте ветку, и накатываете на неё архив. А вотом вливаете в мастер. (ну, по современной политкорректной терминологии -в мейн, но это ничего не меняет)

Остальное - происходит естественным образом при вливании веток обратно в мастер: в большинстве случаев они авто-смерджатся, иногда - когад будет возникать конфликт - надо будет смотреть глазами и праввить исходники перед мержем.

Но общее ощущение от способности гита мержить - очень хорошее.

→ Ссылка