Рекомендации по использованию git поддеревьев / веток для исключения каталогов при публикации новых версий - PullRequest
1 голос
/ 22 апреля 2020

Я разрабатываю библиотеку C ++, которую несколько клиентов будут использовать через поддерево git. Структура каталога моего репо выглядит следующим образом:

foo/
├── extra
├── Makefile
├── src
└── tests

Клиенты будут заинтересованы только в том, чтобы использовать то, что находится в каталоге "sr c", поэтому я бы хотел, чтобы они могли поддерево Makefile, а также каталог "sr c" и исключают все остальное. У меня есть несколько идей, но я не уверен, что они практичны. Вот мой список на данный момент:

  1. Ведение клиентской ветки, в которой я бы вручную удалял ненужные файлы и каталоги при каждом слиянии с master.

  2. Попросите клиентов использовать git filter-repo для удаления нежелательных каталогов после добавления / извлечения поддерева

  3. Разделить мое хранилище на «foo-testing» и « foo ", где foo будет иметь только видимые файлы клиента" foo-testing "будет иметь все остальное.

Вариант 1 кажется наиболее простым, но я боюсь, что он может превратиться в большая головная боль. Вариант 2 может работать, но он требует, чтобы пользователи запускали команды post-subtree. Наконец, вариант 3 кажется наиболее подходящим, но требует обслуживания 2 репозиториев. У кого-нибудь здесь были подобные требования? Любые рекомендации о том, как лучше всего справиться с этим, который не перестанет быть головной болью в будущем?

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