Я разрабатываю библиотеку C ++, которую несколько клиентов будут использовать через поддерево git. Структура каталога моего репо выглядит следующим образом:
foo/
├── extra
├── Makefile
├── src
└── tests
Клиенты будут заинтересованы только в том, чтобы использовать то, что находится в каталоге "sr c", поэтому я бы хотел, чтобы они могли поддерево Makefile, а также каталог "sr c" и исключают все остальное. У меня есть несколько идей, но я не уверен, что они практичны. Вот мой список на данный момент:
Ведение клиентской ветки, в которой я бы вручную удалял ненужные файлы и каталоги при каждом слиянии с master.
Попросите клиентов использовать git filter-repo для удаления нежелательных каталогов после добавления / извлечения поддерева
Разделить мое хранилище на «foo-testing» и « foo ", где foo будет иметь только видимые файлы клиента" foo-testing "будет иметь все остальное.
Вариант 1 кажется наиболее простым, но я боюсь, что он может превратиться в большая головная боль. Вариант 2 может работать, но он требует, чтобы пользователи запускали команды post-subtree. Наконец, вариант 3 кажется наиболее подходящим, но требует обслуживания 2 репозиториев. У кого-нибудь здесь были подобные требования? Любые рекомендации о том, как лучше всего справиться с этим, который не перестанет быть головной болью в будущем?