Есть ли способ использовать репозиторий Mercurial в качестве подмодуля Git?


Я с удовольствием использую подмодули для отслеживания всех библиотек, от которых зависит мой проект. Дело в том, что я использую библиотеку под названием core-plot, которая имеет только публичный репозиторий mercurial. Я, вероятно, могу отразить его в репозитории Git только для чтения, но это лучший вариант, который я получил? Я видел, что в Mercurial есть модули для отслеживания вещей в Git. Кто-нибудь знает, существует ли другой путь?

2 55

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

Если вы готовы положиться на того, кто установил это зеркало, кажется, что это может быть самый простой вариант, чтобы получить подмодуль на месте.