У меня есть проект, который должен поддерживать iOS7. Я хочу использовать lib (назовем его LIB), который не поддерживает iOS7, но может быть легко изменен для этого. Я также ожидаю, что LIB будет изменяться довольно часто.Как изменить код третьей стороны, импортированный с помощью git (поддерево, подмодули и т. Д.)?
Что будет идеальным решением:
Я включил код библитеками в мой проект (тег с последним выпуска)
Я изменяю LIB для поддержки iOS7 (как правило, только один фиксации) , I do not хотите переместить этот фиксатор в оригинальный репозиторий LIB, но хотите сохранить его в моем репозитории проектов.
Когда выпущена новая версия LIB, я обновляю ее в своем проекте, а сливается с изменениями из пункта 2 или просто переделывает эти изменения.
Я не хочу иметь полную историю LIB в моей истории проекта (как git поддерево делает AFAIK). Только что-то вроде «LIB изменилось до 1.2.42, LIB обновлен для поддержки iOS7»;
Я могу скопировать код библитеков себя или поддерживать вилку библитеков с поддержкой iOS7, но это отнимает много времени и не очень «автомагический». Я проверил git-подмодули и git-поддерево, но насколько я понимаю, невозможно иметь точку 2, не так ли ?.
Что такое лучший подход для решения этой проблемы?
спасибо. CocoaPods, к сожалению, не будет работать, потому что мне нужна библиотека, а Swift и CocoaPods поддерживают Swift только для проектов iOS8 +. Но git подмодули должны работать. – Avt
Знаете ли вы, что возможно или нет, чтобы достичь пункта 2 только с помощью Git? – Avt
@Avt, если вы откажете библиотеку, нет (технической) необходимости внести свои изменения обратно в восходящую версию библиотеки. Если эти изменения будут полезны другим разработчикам, было бы неплохо поделиться ими, и в зависимости от того, как библиотека лицензируется, вам может потребоваться. Но последствия лицензии будут одинаковыми независимо от того, используете ли вы подмодули Git или какой-либо другой механизм. – Chris