Зеркальное отображение HG-проекта с Bitbucket на Github

Есть ли эффективный рабочий процесс для отражения проекта, который в основном размещен на bitbucket с использованием Hg, на github?


person Santa    schedule 19.04.2010    source источник
comment
См. Также stackoverflow.com/questions/883452/   -  person wimh    schedule 02.12.2010


Ответы (7)


Вы можете использовать такой инструмент, как hg-git, чтобы:

  • настроить репозиторий Git где-нибудь, к которому у вас есть push-доступ,
  • а затем запустите 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, а затем передать его по имени.

hg-git

person VonC    schedule 19.04.2010
comment
Спасибо. Я бегло посмотрел на hg-git, но вижу, что он все еще находится в альфа-состоянии. Я попытался установить его в cygwin, но сейчас у меня проблемы со стабильностью. Однако при условии, что это работает, это определенно полезный инструмент в рабочем процессе. - person Santa; 20.04.2010

Если вы используете Mercurial для проекта, вы можете быстро и легко создать git-зеркало вашего проекта, чтобы пользователи git могли внести свой вклад. Я создал руководство по использованию hg-git для управления зеркалами Mercurial на GitHub.

В нем рассказывается, как начать работу с учетной записью GitHub, как отправить проект с Mercurial на GitHub и как принимать взносы (запросы на вытягивание) от GitHub. Вот ссылка на сообщение в блоге: http://hgtip.com/tips/advanced/2009-11-09-create-a-git-mirror/ заархивировано на http://web.archive.org/web/20100811223113/http://hgtip.com/tips/advanced/2009-11-09-create-a-git-mirror/

person Steve Losh    schedule 19.04.2010
comment
Упомянутый выше веб-сайт, похоже, больше не доступен. - person mennanov; 15.11.2018

'git-remote-hg' - это полуофициальный мост Mercurial из проекта Git, после установки он позволяет клонировать, извлекать и отправлять в репозитории Mercurial и из них, как если бы они были репозиториями Git:

Добавьте git-remote-hg в свой путь к корзине. Затем вы можете выполнить зеркальное отображение как , упомянутого на 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
person jbtule    schedule 21.04.2014
comment
Это намного лучше, чем принятый ответ, поскольку в результате вы получите настоящее зеркало со всеми тегами и ветвями. - person Kentzo; 01.11.2017
comment
проверьте репозиторий вашей ОС, т.е. доступен пакет fedora: dnf install -y git-remote-hg - person Alec Istomin; 31.01.2020

По состоянию на июль 2013 года существует BitSyncHub, веб-сервис для автоматизации этого процесса с помощью перехватчика пост-получения BitBucket. Однако вам нужно будет предоставить службе разрешение на запись в ваш репозиторий GitHub (добавьте bitsynchub в качестве участника).

person kynan    schedule 06.12.2013

Я сообщаю с февраля 2019 года. Я только что столкнулся с этой проблемой, и последовал предложению @ vonc использовать hg-git и заполнил несколько недостающих шагов, чтобы заставить его работать. Здесь я дам более подробное руководство:

  1. Установите hg-git, клонировав его репозиторий где-нибудь и создав раздел 'extension' в вашем ~ / Файл .hgrc выглядит примерно так:
[extensions]
hggit = [path-to]/hg-git/hggit

Я нашел самые свежие инструкции по установке в исходном репозитории: https://bitbucket.org/durin42/hg-git. Так что следите за этим.

  1. Установите dulwich, если это еще не сделано: pip install dulwich.

  2. Создайте новый пустой репозиторий на GitHub, например https://github.com/user/git-mirror < / а>.

  3. Клонируйте исходный репозиторий hg и отправьте его в зеркало git:

$ hg clone https://bitbucket.org/user/hg-source
$ cd hg-source
$ hg push git+ssh://[email protected]/user/git-mirror.git
person qobilidop    schedule 03.02.2019
comment
Интересный отзыв в дополнение к моему старому ответу. Проголосовали. - person VonC; 03.02.2019

Еще одно доступное решение для быстрого преобразования: https://github.com/frej/fast-export

person Stefan Gloutnikov    schedule 23.03.2014

Для этого можно использовать службу Git-hg Mirror (включая зеркалирование репозитория GitHub в Bitbucket или двунаправленную синхронизацию) .

person Piedone    schedule 12.05.2018