У меня есть пара рабочих деревьев с некоторыми зависимостями. AFAIK, подмодуль git обеспечит следующее:
- иметь копию каждого рабочего дерева (подчиненного) в подкаталоге каждого рабочего дерева, используя его (мастер)
- мастер-репозиторий дублирует всю информацию с ведомых устройств
Я не возражаю против увеличения объема репозиториев, но наличие копий для меня совершенно неприемлемо. Это заставит меня реорганизовать все проекты, чтобы копия была связана. Более того, редактирование неправильного файла может легко произойти, что приведет к путанице.
У меня есть другая идея:
- Каждый мастер хранит список всех своих подчиненных устройств.
- Никакой другой информации в мастер не требуется.
- С каждой фиксацией в master создается моментальный снимок" в подчиненном устройстве.
- "snapshot-commit" - это моментальный снимок текущего состояния рабочего дерева, он игнорирует текущее состояние индекса (я уже использую "моментальные снимки", прежде чем отбрасывать некоторые неуправляемые изменения).
- "моментальные снимки" собираются в ветке, чье имя происходит от имени мастера. Сообщение фиксации содержит хэш главной фиксации. (ИМХО, это лучше, чем наводнение тысячами тегов.)
- Проверка выполняется, как обычно, если не требуется рекурсия в ведомые устройства.
Единственные проблемы, которые я вижу, следующие:
- Записи в ведомых будут накапливаться и никогда не удаляться, даже если хозяин больше не существует.
- Записи в мастер не являются самосодержащими, вы можете удалить фиксацию, указанную в главном. Но я не вижу никаких шансов, что это может произойти случайно, поэтому я могу жить с ним.
- Я не могу представить, как могла бы помочь другая команда git. Но опять же, я могу жить с ним.
Я спрашиваю, кто-то уже реализовал это (или если это плохая идея).