2010-06-16 2 views
0

Предположим, у меня есть проект под моим собственным контролем версий. Затем я хочу внести некоторые изменения в стороннюю библиотеку, поэтому я хочу, чтобы источник этого lib в моем проекте находился под моим контролем версий с остальной частью проекта. Тем не менее, сторонняя библиотека поддерживается где-то еще в другой системе управления версиями. Поскольку я разворачиваю эту библиотеку, мне захочется вытащить обновления для нее, которые будут переданы позже из внешнего мира.Поддержание третьих сторон Libs

Я не знаю, как правильно структурировать такую ​​ситуацию ... У меня есть только сторонняя библиотека с контролем версий и все вложенные в мою настройку управления версиями? Или я поддерживаю его где-то в другом месте и символизирую файлы или даже копирую + вставляю их в свой проект, когда я вывожу обновления из внешнего мира?

+0

Возможно, его лучше отправить патч оригинальным хранителям библиотеки и вообще избежать ситуации? –

ответ

0

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

Эта структура позволяет мне регулярно вытаскивать обновления lib и оценивать их, обеспечивая при этом, что мой проект строится со стабильными битами lib. Как только я убедился, что любые новые изменения в библиотеке не дестабилизируют мой проект, я обновляю проектную репо с новым двоичным кодом.

Конечно, вы можете также включить источник библиотеки как часть вашей сборки проекта. Вы даже можете автоматизировать вытягивание обновлений. Однако, если вы сделаете это таким образом, ваша стабильность проекта будет оставлена ​​на усмотрение сторонников библиотеки, и любое нарушение изменений в ее источнике или поведении может негативно повлиять на ход вашего проекта.

Смежные вопросы