Git, два хранилища в одном решении - PullRequest
0 голосов
/ 27 сентября 2018

У нас есть два проекта, написанных с помощью c # для Visiual Studio, назовем их A и B. Оба из них могут использоваться как отдельные продукты.Bu B может быть интегрирован в A или в другие продукты в виде модуля.Мы использовали SVN, но теперь мы переключаемся на Git с VSTS (Azure Devops).

Мы в основном разрабатываем проект B, пока мы разрабатываем проект A, в том же решении.

Есть ли способ?установить эти репозитории отдельно и зафиксировать изменения обоих проектов в одной и той же ветке без коммутационных решений?

Какую правильную стратегию мы должны использовать для управления этой ситуацией?

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

В качестве альтернативы подходу субмодулей вы можете рассмотреть подход monorepo ;другими словами, сохраняя оба проекта в одном и том же git-репозитории.

В Git (или Visual Studio, в этом отношении) нет ничего, что требовало бы использования корневой папки репозитория в качестве рабочего каталога при работе скод в репозитории, так что ваш текущий рабочий процесс разработчика в каждом отдельном проекте, вероятно, может работать просто отлично.Вы также получаете преимущество, заключающееся в том, что работа с B и A в одном и том же решении будет выглядеть очень естественно.

В зависимости от структуры вашей команды и т. Д., Конечно, есть и недостатки (например, без хорошей дисциплины это можетбыть громоздким, чтобы в одном хранилище работало очень много людей), поэтому не рассматривайте это как «серебряную пулю» - рассматривайте это как одно из многих возможных решений вашей проблемы;оцените их и выберите один из них, основываясь на том, что, как вам кажется, он будет работать для вас (и переключитесь снова, если это не сработало).

0 голосов
/ 27 сентября 2018

Мы решаем это с помощью подмодулей git.Подмодуль - это отдельный репозиторий git внутри другого репозитория git.Вы фиксируете отдельно в обоих репозиториях, и родительский репозиторий «запоминает», на какой коммит репозитория подмодулей он указывает в данный момент.

Вы можете найти множество документации о подмодулях, например, в pro git book .Есть некоторые подводные камни, но если вы однажды получите рабочий процесс, это хороший подход к вашей проблеме.

Git Subtrees может быть альтернативой.

...