2012-03-08 2 views
1

Позвольте мне попытаться сделать это очень простым для подражания. Я развертываю Vagrant для своих разработчиков, и я буду использовать Puppet для установки машин. Предположим, у меня есть два набора машин, один из которых имеет сервер apache/mysql5 и сервер apache/mongodb. Я использую Puppet для управления различными компонентами, но я не использую централизованный сервер кукловодов.Вытягивание определенных каталогов в Mercurial?

Сказав это, я обслуживаю два каталога внутри хранилища Mercurial. В случае, если мне нужно что-то изменить с помощью mysql, я могу заставить разработчиков выполнить последние изменения. Проблема, с которой я сталкиваюсь, заключается в том, как мне обрабатывать структуру репозитория без дублирования структуры каталогов.

manifests - Это отличается для каждой машины, mysql машины будет иметь директивы для установки mysql в то время как mongodb машины будет иметь свои собственные инструкции для mongodb

modules - Это является общей для каждой машины, но только необходимые папки внутри этой папки хранится на каждой машине (т.е. модули/mongodb и modules/mysql).

Если я выброшу все это в один большой репозиторий, я не хочу, чтобы мой сервер «apache + mysql» загружал модули для модулей «apache + mongodb». Можно ли, например, положить каталог manifests в конкретное репо и загрузить только соответствующие папки из папки modules?

+0

Вы можете попробовать subrepos. –

ответ

3

Вы можете использовать функциональность Subrepository Mercurial.

Если я правильно, что вы хотите понять, я сделаю следующее:

  1. один репозиторий для каждого различного манифеста
  2. один репозиторий для каждого различных модулей
  3. Создание «верхнего уровня» репозиторий для каждого типа машины, который будет содержать различные необходимые субрепозитории сверху.
Смежные вопросы