Я с удовольствием использовал подмодули для отслеживания всех библиотек, от которых зависит мой проект. Дело в том, что я использую библиотеку, называемую core-plot, которая имеет только публичный ртутный репозиторий. Возможно, я могу отразить это в репозитории readonly Git, но это лучший вариант, который я получил? Я видел, что в Mercurial есть модули для отслеживания вещей в Git. Кто-нибудь знает, существует ли другой способ?
Есть ли способ использовать репозиторий Mercurial в качестве подмодуля Git?
Ответ 1
Использование git -hg.
Во-первых, убедитесь, что в вашем основном хранилище есть (не Mercurial) git подмодуль. Если у вас еще нет других подмодулей, просто создайте фиктивный подмодуль для некоторой библиотеки, отличной от core-plot
, например:
main-repo $ git submodule add https://repo.url.com/repo.git repo
Во-вторых, клонируйте библиотеку core-plot
в какой-то каталог.
main-repo $ git-hg clone https://code.google.com/p/core-plot/ core-plot
Добавить новое репо в список подмодулей.
main-repo $ git submodule add ./core-plot core-plot
main-repo $ git commit -am "added core-plot submodule"
С этого момента любой клоун из этого репо будет вытаскивать оба репозитория. (После инициализации и обновления подмодуля).
Некоторые проблемы, которые я выяснил до сих пор:
- Если вы нажмете на голый, тогда ссылка repo и каталог будут созданы в голом, но репозиторий не будет клонирован внутри него, а другие, вытаскивающие из этого голого, не смогут получить основной сюжет lib.
- Если необходимо обновить базовый график, то с
git-hg
будетgit-hg pull
.
Обратный вопрос git подмодуль из Hg repo? также задается в StackOverflow. В лучшем ответе упоминаются проекты hg- git и git -hg. Другой связанный с этим обратный вопрос: Как работать с подмодулями git на репо, преобразованном в Mercurial.
Ответ 2
По моему опыту, большинство активных проектов git имеют обновленное зеркало git, плавающее вокруг GitHub. Похоже, у core-plot
тоже есть:
https://github.com/djw/core-plot
Если вы готовы полагаться на тех, кто настроил это зеркало, кажется, что это самый простой способ получить подмодуль.