Git + SoA, один репо или много? - PullRequest
3 голосов
/ 13 мая 2010

Обычно, когда я запускаю новое приложение, я создаю для него новый репозиторий git. Это хорошо принято и хорошо работает с Github, когда я хочу поделиться своим кодом.

На работе я работаю в сервис-ориентированной архитектуре. Один из наиболее распространенных шаблонов - это одновременное добавление некоторого кода в два разных приложения - возможно, добавление модели с интерфейсом RESTful к одному и веб-интерфейса для управления им в другом. Использование отдельных репозиториев git в этом случае имеет некоторые проблемы.

Вот что я вижу как недостатки создания отдельных репозиториев:

  1. Я должен совершить дважды
  2. Я не могу очень хорошо соотнести соответствующие коммиты
  3. Нет единого места, где можно было бы вернуться и проследить историю - я хотел бы иметь возможность собрать все свои коммиты за день в одном месте
  4. Забыть потянуть один репо или другой - это гоча

С другой стороны, я много использовал перформанс, и у его одной гигантской модели хранилища тоже много бородавок. У Perforce есть функции, разработанные для того, чтобы помочь вам с этим, git - нет.

Кто-нибудь еще сталкивался с этой ситуацией? Как вы справиться с этим? Что сработало, а что нет?

1 Ответ

1 голос
/ 13 мая 2010

Если ваши разные репо являются частью одного и того же глобального приложения, вы можете объединить их в виде подмодулей в главном проекте .
Оттуда вы можете:

  • зафиксировать подмодуль только один раз в проекте P1 (если подмодуль необходимо повторно использовать в другом проекте P2, вы переходите в этот другой проект P2, в подкаталог, ссылающийся на указанный подмодуль, который вы только что зафиксировали в P1, извлекаете этот коммит , вернитесь на один уровень вверх и зафиксируйте этот другой проект P2, поскольку P2 должен ссылаться на тот же коммит, что и P1)

  • на все связанные коммиты ссылается основной проект

  • «супер-главный» проект может ссылаться на все ваших подмодулей, чтобы вы могли иметь это «единственное место, чтобы вернуться и проследить историю»

  • вам нужно только вытащить основной проект, и это потянет ссылки на правильные подмодули.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...