Есть ли способ использовать репозиторий Mercurial в качестве подмодуля Git?
Я с удовольствием использую подмодули для отслеживания всех библиотек, от которых зависит мой проект. Дело в том, что я использую библиотеку под названием core-plot, которая имеет только публичный репозиторий mercurial. Я, вероятно, могу отразить его в репозитории Git только для чтения, но это лучший вариант, который я получил? Я видел, что в Mercurial есть модули для отслеживания вещей в Git. Кто-нибудь знает, существует ли другой путь?
2 ответа:
используя git-hg.
во-первых, убедитесь, что подмодуль git (non-Mercurial) находится под вашим основным репозиторием. Если у вас еще нет других подмодулей, просто создайте фиктивный подмодуль для некоторой библиотеки, отличной от
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"
отныне любой клон из этого РЕПО будет тянуть оба репозитория. (После инициализации и обновления подмодуля).
некоторые проблемы, которые я узнал до сих пор являются:
- если вы нажмете на голый, то ссылка РЕПО и каталог будут созданы в голом, но репозиторий не будет клонирован внутри него, а другие, потянув из этого голого, не смогут получить ядро-plot lib.
- если core-plot должен быть обновлен один с
git-hg
придетсяgit-hg pull
.в обратный вопрос подмодуль git из РЕПО Hg? также спрашивается на StackOverflow. Лучший ответ упоминает проекты hg-git и git-hg. Другой связанный с этим обратный вопрос:как работать с подмодулями Git на репо, которое преобразуется в Mercurial.
по моему опыту, большинство активных проектов, не связанных с git, имеют обновленное зеркало git, плавающее на GitHub. Это выглядит как
core-plot
тоже:https://github.com/djw/core-plot
Если вы готовы положиться на того, кто установил это зеркало, кажется, что это может быть самый простой вариант, чтобы получить подмодуль на месте.