ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1013495 Топик полностью
il-2 (21.06.2020 09:20, просмотров: 403) ответил Constantin24 на Работаешь над одним проектом, получаешь готовые модули, классы. Переходишь к другому проекту, что-то подтягиваешь из прошлого. В нем добавляешь функционал, закрываешь баги, совершенствуешь. Вот уже третий проект, который подтягивает уже готовые исходники и вписывает свои нововедения. Тут возвращаешься к первому: ооо нет, здесь старье. Тянешь с другого проекта последнею версию. Все ок. Сделал рефакторинг(или что-то подобное, может баги исправил фичи добавил).
Я по разному пробовал решать проблему использования общих модулей/библиотек в разных проектах. В конце концов остановился на таком варианте: 

Все модули/библиотеки лежат в виде исходников с репозиториями по своим каталогам. Для каждого модуля в своем каталоге ведется репозиторий.

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

Еще в проект копируются конфиги этих модулей.

Затем, когда создается репозиторий проекта, к нему подключаются субрепозитории модулей.

За счет использования символьной ссылки в каталоге проекта решается проблема абсолютных путей. Но там есть и определенные нюансы.

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

При выборе какого-нибудь старого коммита (без ссылки) ссылка будет удалена. При возврате к новому коммиту (с ссылкой) вместо ссылки будет создан каталог.

Так-же при работе с несколькими проектами, которые используют общие модули надо следить, чтобы в рабочем каталоге модуля лежали исходники из субрепозитория соответствующие текущему проекту, а не предыдущему. Но такое бывает в процессе написания/доработки модуля. Когда все давно готово, то проблем нет.

PS: пользую Mercurial, в git по идее тоже должно работать так-же.