@klirichek

Как правильно мержить с помощью git файл исходника, разбитый на несколько частей?

В текущей ветке проекта один большой .cpp файл отрефакторили и разбили на несколько маленьких (при этом никаких изменений не вносилось, чистый копи-паст).
Однако в стабильной ветке всё осталось по-прежнему.
Проходит время, открываются тикеты, фиксятся баги, фиксы коммитятся в стабильную ветку.
И вот настаёт время, когда фиксы нужно смержить также и в текущую ветку разработки.

Проблема в следующем: допустим, был фикс в функции foo(). Фикс тривиальный; весь нужный контекст доступен. Но! Теперь эта функция находится уже в другом файле! Соответственно, при мерже возникает конфликт: ("в ихней" ветке есть изменения относительно общего предка, а "в нашей" этой функции уже вообще нет). Да, можно руками накатить патч в нужное место нового файла (по итогу так и пришлось сделать).
Я слышал, что git умеет достаточно чётко отслеживать переименования файлов. Но здесь иной случай: речь о переносе куска текста из одного файла в другой.
Можно ли автоматически отслеживать такую ситуацию?
(ну, один раз смержил вручную. Но ведь в будущем-то ситуация не изменится! Следующий мерж, выходит, нужно будет тоже делать ручками? Или можно как-то автоматизировать?)
  • Вопрос задан
  • 2493 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы