Я новичок в Fossil (и конфигурации CVS), пытаюсь создать и управлять набором распределенных репозиториев Fossil для проекта Delphi.
На моей машине разработки есть следующее дерево каталогов:
Projects
Some Project
Delphi Components
LookupListView
Some Client
Some Project For Client
Some Other Project For Client
Source Code
Project Resources
Project Database
Я настраиваю контроль версий Fossil для создания версий и совместного использования Projects \ Some Client \ Some Other Project For Client \ Исходный код, который содержит исходный код Delphi 2010 для проекта базы данных.
В этом проекте используется Projects \ Delphi Components \ LookupListView, который является компонентом Delphi. Мне нужно, чтобы этот код был включен в систему управления версиями для моего проекта. Теоретически мне нужно будет включить его и в другие репозитории в будущем.
Если я создаю свой репозиторий Fossil на уровне исходного кода или на каком-либо другом проекте для клиента, я не могу добавить какой-либо код выше этого уровня в свой репозиторий. Как правильно бороться с этим? Мне приходят на ум два решения:
1) Создайте отдельный репозиторий для LookupListView и убедитесь, что каждый, кто использует репозиторий для проекта, который ссылается на него, «знает», что он также должен получить текущую версию этого проекта. Похоже, это лишает смысла возможность получить полную текущую версию проекта с помощью одной проверки. Проблема усиливается, потому что в этом проекте есть другие общие зависимости компонентов.
2) Создание моего хранилища Fossil в каталоге Projects, чтобы я мог проверять файлы из разных подпапок. Мне кажется, это связано с огромным количеством дополнительной типизации путей при выполнении операций добавления, а также навязывает мою структуру каталогов (Some Client \ Some Other Project For Client \ Source) другим пользователям репозитория - в данном случае, фактический клиент.
Любые предложения приветствуются.