Зеркальное отражение проекта HG от Bitbucket до Github - PullRequest
53 голосов
/ 19 апреля 2010

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

Ответы [ 7 ]

40 голосов
/ 19 апреля 2010

Вы можете использовать такой инструмент, как 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://git@github.com/schacon/hg-git.git
$ hg push

Это преобразует все наши данные Mercurial в объекты Git и отправляет их на сервер Git.
Вы также можете указать этот путь в[paths] раздел .hg/hgrc, а затем нажмите на него по имени.

hg-git

13 голосов
/ 20 апреля 2010

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

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

10 голосов
/ 21 апреля 2014

Добавьте 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
6 голосов
/ 07 декабря 2013

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

2 голосов
/ 03 февраля 2019

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

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

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

  1. Установить Дульвич , если еще не установлено: 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://git@github.com/user/git-mirror.git
1 голос
/ 23 марта 2014

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

0 голосов
/ 12 мая 2018

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

...