Работа с несколькими проектами в одной среде стека / git / IDE - PullRequest
0 голосов
/ 03 декабря 2018

Я строю проект на Haskell, и по мере роста этого проекта появляются некоторые библиотеки, которые можно извлечь в другой репозиторий git.Пока эти библиотеки лежат в основе моего проекта. Есть ли способ (например, промежуточный этап), где я мог бы действительно извлечь эти библиотеки, но локально в одном и том же репозитории git?

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Здесь есть несколько различных понятий "проекта":

  • git repo
  • стековый проект (определенный stack.yaml)
  • cabal-проект (определяется project-name.cabal)
  • библиотека / исполняемый файл

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

  • Один репозиторий git позволяет легко синхронизировать изменения;несколько репозиториев позволяют легко предоставлять доступ к фиксации для разных людей или отражают более слабую связь между командами
  • один стек проект позволяет легко использовать одни и те же версии зависимостей для всего вашего кода;несколько проектов облегчают обновление различных программ / библиотек в разное время
  • Если вы используете stack, я не думаю, что будет иметь большое значение, сохраняете ли вы исполняемые файлы в отдельных проектах Cabal или все вместе.Если вы хотите публиковать библиотеки в Hackage, вам понадобится каждая из них в своем собственном проекте Cabal.

Документы стека объясняют, как включить несколько проектов Cabal в один проект стека.Они могут находиться под каталогом, содержащим stack.yaml, или нет.Поэтому, если вы хотите, вы можете перемещаться поэтапно:

  • из одного кабального проекта в несколько
  • из одного репозитория git в несколько, используя путь к локальной проверке в stack.yamlпостроить против того, что вы в настоящее время извлекли
  • в git-репозиторий и зафиксировать хеш в stack.yaml, так что любой строитель получит ту же версию библиотеки-репо
0 голосов
/ 03 декабря 2018

Вы можете создать новое репо для библиотек с помощью этой техники: https://help.github.com/articles/splitting-a-subfolder-out-into-a-new-repository/

Затем вы можете импортировать это репо в исходное как подмодуль: https://chrisjean.com/git-submodules-adding-using-removing-and-updating/

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