Есть ли эффективный рабочий процесс для зеркалирования проекта, который в основном размещается на битбакете с использованием Hg, до github?
Зеркалирование проекта HG от Bitbucket до Github
Ответ 1
Вы можете использовать инструмент, например hg-git
, чтобы:
- настройте репозиторий Git где-нибудь, на который вы нажимаете доступ,
- а затем запустите
hg push [path]
из вашего проекта. Например:
$ cd hg-git # (a Mercurial repository)
$ hg bookmark -r default master # make a bookmark of master for default, so a ref gets created
$ hg push git+ssh://[email protected]/schacon/hg-git.git
$ hg push
Это преобразует все наши данные Mercurial в объекты Git и подтолкнет их к серверу Git.
Вы также можете поместить этот путь в раздел[paths]
.hg/hgrc
, а затем нажать на него по имени.
Ответ 2
Если вы используете Mercurial для проекта, вы можете быстро и легко сделать зеркало git вашего проекта, чтобы пользователи git могли внести свой вклад. Я создал учебник об использовании hg-git
для управления зеркалами Mercurial на GitHub.
В нем описывается, как начать работу с учетной записью GitHub, как продвигать проект от Mercurial до GitHub и как принимать вклады (тянуть запросы) от GitHub. Здесь ссылка на сообщение в блоге: http://hgtip.com/tips/advanced/2009-11-09-create-a-git-mirror/
Ответ 3
Добавьте git-remote-hg в ваш путь к bin. Затем вы можете зеркалировать как упомянутый в github.
git clone --mirror hg::https://bitbucket_repo
затем перейдите в свое клонированное репо
git remote set-url --push origin https://github.com/exampleuser/mirrored
наконец, синхронизировать ваше зеркало
git fetch -p origin
git push --mirror
Ответ 4
По состоянию на июль 2013 года существует BitSyncHub веб-сервис для автоматизации этого процесса с помощью бита post-receive BitBucket. Вы должны будете предоставить разрешение на запись службы в свой репозиторий GitHub (добавьте bitynchub в качестве вкладчика).
Ответ 5
Еще одно доступное решение для быстрого преобразования: https://github.com/frej/fast-export
Ответ 6
Я сообщаю с февраля 2019 года. Я только что столкнулся с этой проблемой, следовал предложению @vonc использовать hg-git и выполнил несколько пропущенных шагов, чтобы заставить его работать. Здесь я приведу более подробное руководство:
- Установите hg-git, скопировав его хранилище и сделав так, чтобы раздел 'extensions' в вашем файле ~/.hgrc выглядел примерно так:
[extensions]
hggit = [path-to]/hg-git/hggit
Самые свежие инструкции по установке я нашел в репозитории исходного кода: https://bitbucket.org/durin42/hg-git. Так что следите за этим.
-
Установите dulwich, если еще нет:
pip install dulwich
. -
Создайте новый пустой репозиторий на GitHub, например https://github.com/user/git-mirror.
-
Клонируйте исходный репозиторий hg и поместите его в зеркало git:
$ hg clone https://bitbucket.org/user/hg-source
$ cd hg-source
$ hg push git+ssh://[email protected]/user/git-mirror.git
Ответ 7
Для этого вы можете использовать службу Git-hg Mirror (включая зеркалирование репозитория GitHub в Bitbucket или синхронизацию в двух направлениях).