LINUX.ORG.RU

Применить патч

 , ,


0

1

Привет.

Имеется гит проект, в нём используется субмодуль (не мой), автор там наЮБнул маленько, я ему отправли патч, но какой-то он нерасторопный, проще самому пропатчить локально субмодуль у себя. Сценарий условно такой - я клонирую с субмодулями свой проект, запускаю cmake .., который патчит субмодуль в директории с исходниками.

По идее ExternalProject умеет патчить, но как его заставить исполнить git apply … из директории субмодуля? (ибо выполнить patch некросплатформенно? Всякая винда, чем они там патчат? Какие опции? Хз вообще)

В общем я теоретик, как пропатчить субмодуль правильно?

★★

В общем пока максимум что получилось

include(ExternalProject)
ExternalProject_Add(submod
	SOURCE_DIR ${PROJECT_SOURCE_DIR}/submodule
  UPDATE_COMMAND git apply ${PROJECT_SOURCE_DIR}/modify.patch
  CONFIGURE_COMMAND ""
  UPDATE_COMMAND ""
  INSTALL_COMMAND ""
  BUILD_COMMAND "")

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

Вообще странно - почему такая нужная вещь никому не нужна, готового рецепта нет, на SO предлагают форкать.

kvpfs ★★
() автор топика
Ответ на: комментарий от kvpfs

Мусор - это держать патч, городить код для его накладывания в системе сборки, а потом ещё мучаться когда он перестанет накладываться. С патчами 30 лет назад пердолились, сейчас делается форк того что нужно патчиит, и, если нужно форк того что это использует в качестве submodule. Теперь наличия патча видно всем, а не только тому кто залез в ваш форк, элементарно накатиться до свежей версии патченного кода и куча других плюшек.

slovazap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.