У нас есть несколько модулей, где мы это сделали, и то, что мы по сути сделали:
- Настройте Git-репо для модуля.
- Разверните этот модуль в кодовой базе рабочего сайта и передайте все, включая:
- софт-ссылки созданные модманом
- каталог .modman, в котором находится клонированный репозиторий модулей
- Используйте modman, чтобы «развернуть» его в других версиях и / или среде разработки для разработки и тестирования.
Делая это таким образом, вы получаете гибкость, необходимую для разработки модулей, версии кода на одном сайте, и если вы вносите изменения в модуль в базе кода для одного сайта, вы можете зафиксировать их прямо в репозитории модулей, так как репозиторий находится в каталоге .modman.
ОБНОВЛЕНИЕ:
Когда я первоначально написал это, я не учел в своем ответе, что Git не позволяет (суб) модулям быть зафиксированными в репозитории, и в этом случае «фиксация всего» требует некоторой проработки!
Кстати, это потому, что я делал это чаще, используя modman для развертывания модулей, размещенных в репозиториях Git, в производственную кодовую базу, размещенную в SVN… и у Subversion нет никаких препятствий, мешающих ему передать все дерево Git в VCS.
Так что здесь идет ...
Если вы используете SVN для размещения кода рабочего сайта, у вас не должно быть проблем, поскольку Subversion (практически) не имеет понятия о субмодулях. Это не будет возражать.
Если вы используете Git для кода производственного сайта, вам придется использовать подмодули, чтобы «зафиксировать все» в хранилище кода сайта. После использования modman для клонирования чего-то подобного:
modman clone ssh://git@bitbucket.org/<user>/<repo>.git
Вы также захотите добавить его как субмодуль, например так:
git submodule add ssh://git@bitbucket.org/<user>/<repo>.git .modman/<repo>
Как только вы это сделаете, вы сможете добавить в индекс каталог .modman и файл .gitmodules и зафиксировать его.
После клонирования репозитория, использующего эти модули, установленные через modman, просто инициализируйте подмодули и обновите:
git submodule init
git submodule update
PS Теперь я использую Git на всех новых проектах, так что, надеюсь, такого упущения больше не будет. Извините ребята. ;)