Подмодуль git в подмодуле с общими зависимостями, в проекте C # - PullRequest
0 голосов
/ 21 октября 2019

У меня есть следующий сценарий:

  • базовая библиотека, назовем ее A.
  • библиотека функций, мы назовем B. B зависит от A.
  • инструмент, называемый C, в зависимости от A и B.

A используется во многих проектах. B совместно используется через 3-4.

Итак, макет выглядит следующим образом:

  • Проект C имеет подмодуль с буквой A внутри.
  • Проект C имеетсубмодуль с B внутри, и, в свою очередь, B имеет субмодуль с A внутри.

Это хорошо работает в git, хотя быстро выходит из строя на стороне проекта.

Первый выводзаключается в том, что C и B могут использовать разные ревизии A, но это только от нас, чтобы не испортить это.

Основная проблема заключается в том, что невозможно иметь проект, включающий «A» дважды вIDE.

Возможно ли иметь B в качестве подмодуля, но B не будет иметь свой собственный подмодуль? поэтому у нас не будет двух копий A?

Кроме того, я уверен, что есть другие с такой же проблемой. Существует ли распространенный / принятый способ решения этой проблемы?

1 Ответ

0 голосов
/ 21 октября 2019

Распространенным / общепринятым способом решения этой проблемы не является использование подмодулей git. Как только все становится слишком сложным, становится слишком много вещей, которые могут пойти не так.

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

С NuGet вам придется создавать пакеты из A и B, Paket позволяет git зависимости , поэтому вам нужно будет только обновить build / project / solutions в B и C.

...