Небольшие общие общие компоненты - PullRequest
1 голос
/ 05 мая 2019

Допустим, у меня есть несколько небольших автономных проектов, каждый из которых использует свой собственный репозиторий git.

Это может быть на любом языке, я думаю, но на практике меня интересуют в основном C, C ++ и Java..

Наряду с этими проектами и их поддержкой у меня есть множество небольших служебных функций и классов, если хотите, «персональная стандартная библиотека» (далее я буду называть это «библиотекой», но имейте в виду, чтоэто не монолитная вещь: вы можете выбирать из нее кусочки).В большинстве моих проектов я использую один или несколько файлов из этой библиотеки.

Я ищу какой-нибудь способ справиться с этой ситуацией.Каждый репозиторий git должен быть автономным в том смысле, что если вы клонируете проект в одиночку, он поставляется со всеми файлами, необходимыми для его компиляции.То есть я не хочу добавлять всю библиотеку как подмодуль (действительно, некоторые проекты могут представлять собой пару исходных файлов, один из которых взят из библиотеки, и я не хочу импортировать 100 других файлов).

Каждый проект должен иметь возможность выбирать, какие файлы из lib он использует.Если я обновляю lib, в идеале у проектов должен быть простой способ получения обновлений.

Я рассмотрел символические ссылки: каждый проект ссылается на файлы, которые он хочет получить из lib, но git не следует символическим ссылкам.Я рассмотрел жесткие ссылки - может быть, это работает?Он не выглядит очень переносимым для файловых систем, которые не поддерживают жесткие ссылки.

Как мне достичь своих целей?

1 Ответ

1 голос
/ 06 мая 2019

Это лучший адрес для подмодулей

git submodule add /url/repo amodule добавит подпапку с amodule, в качестве содержимого которой будет клонированное хранилище.

URL-адрес может быть относительным путем:

<repository> - это URL исходного хранилища нового субмодуля. Это может быть либо абсолютный URL, либо (если он начинается с ./ или ../) местоположение относительно удаленного репозитория суперпроекта по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...