Git setup для коллекции приложений, разделяющих изменчивый код - PullRequest
2 голосов
/ 29 августа 2011

У нас есть 7 приложений (веб-сайтов), все из которых имеют общий подмодуль.

website1.git
website2.git
...
shared_engine.git

Я думаю, что подмодульная концепция отслеживания коммита, а не HEAD, хороша.Хороший и предсказуемый ... отлично подходит для развертывания.Но для развития ... вот драконы!

Если наши подмодули довольно статичны, например.здесь библиотека xml, библиотека часовых поясов, они идеальны.
Если, однако, мы их много редактируем, они могут стать проблемой!И в приведенном выше примере 95% наших правок находятся в shared_engine!Я полагаю, что они причиняют боль по двум причинам ...

  1. При разработке вы хотите иметь возможность видеть свои изменения локально во всех приложениях без необходимости фиксировать, толкать и тянуть.Я достигаю этого, создавая символические ссылки (которые, конечно, должны быть возвращены, время коммитов).
  2. Для выполнения любого вида ветвления требуется немало прав администратора, поскольку все веб-сайты и общий подмодуль требуют ветвления и связывания их вместе.

В настоящее время я написал коллекцию сценариев bash, которая создает для меня символические ссылки и выполняет некоторые функции ветвящегося администратора.Они - благословение, но могут быть испорчены ... Я не могу не чувствовать, что есть лучший способ!

У меня ужасный искушение сделать только одно большое репо из них.
Репозитории сайта составляют ~ 3 МБ, а shared_engine - ~ 30 МБ.Это сделало бы жизнь проще ... но есть хороший шанс, что появятся другие сайты.Что тогда?

Я думал, что это может быть распространенной проблемой ... если вы находитесь в подобной ситуации, как вы справляетесь с этим?Пожалуйста, спасите меня от монолитного репо!

ура -H

1 Ответ

0 голосов
/ 29 августа 2011

Промежуточным решением будет использование во время разработки gitslave .

. Подмодули будут объявлены в родительском репо, используемом для интеграции / развертывания.
Но для повседневной разработки gitslave позволит вам синхронизировать набор репо, особенно при ветвлении.

...