У меня нет большого опыта работы с Mercurial, я в основном парень из Git.
Я хотел бы отразить конкретную папку / файл Mercurial в Git Repository. На самом деле я пытаюсь экспортировать историю файла из репозитория Mercurial в Git и иметь возможность синхронизировать ее с будущими коммитами.
Есть ли у вас какие-либо предложения о том, как поступить? Я считаю, что для этого нужно получить историю исправления Mercurial, периодически экспортировать каждый коммит в виде исправления и применять исправления Mercurial к репозиторию Git.
Ответы:
В Linux или что-либо с
bash/sh
или аналогичным, илиpython
попробуйте с быстрым экспортом :источник
PYTHON=python2 ~/fast-export/hg-fast-export.sh -r /path/to/old/mercurial_repo
. Кроме того, это работало безупречно.sudo easy_install mercurial
сначала. Было бы неплохо иметь в инструкцииWindows: расширение TortoiseHG Hg-Git
Hg-Git может использоваться для преобразования хранилища Mercurial в Git. Вы можете использовать локальный репозиторий или удаленный репозиторий, доступ к которому осуществляется через SSH, HTTP или HTTPS.
Пример конвертации локальных репозиториев.
Установите Hg-Git.
В Windows TortoiseHg поставляется с Hg-Git, хотя вам необходимо включить его с помощью инструмента настройки (в разделе расширений)
или вручную в
~/mercurial.ini
Используйте следующие команды для преобразования хранилища:
hg
Закладка необходима , чтобы избежать проблем как в противном случае Hg-ГИТ толчки в настоящее время проверили филиал запутанного Git. Это создаст ветку с именемhg
в репозитории Git. Чтобы получить изменения в мастере, используйте следующие команды (необходимо только при первом запуске, позже просто используйтеgit merge
илиrebase
):источник
Вы можете (со стороны Mercurial):
--filemap
опцией конвертировать часть оригинального репо в меньший с только необходимыми файлами | каталогамиили (вместо hg-git), используя Mercurial bridge в Git , clone | pull хранилище из Git
источник
Gitify
Похоже, более современная и простая в использовании альтернатива для выполнения конвертации https://github.com/buchuki/gitifyhg
источник
Конвертировать репозиторий Mercurial в Git на Windows 10
Если нет проблем с кодировкой - используйте расширение TortoiseHG Hg-Git
Если что-то не так с кодировкой - используйте fast-export
Установить Bash
Откройте PowerShell от имени администратора и запустите:
Установите Ubuntu 16.04 LTS из магазина Microsoft
Откройте Bash и запустите
установить ртутный
get fast-export v180317 (на данный момент версии после 180317 работают некорректно)
преобразовать хранилище
варианты кодирования:
-f
кодировка, как-f cp1251
--fe
кодировка имени файла как--fe cp1251
источник
HG-ГИТ-быстро-импорт
https://github.com/kilork/hg-git-fast-import
Еще одна утилита со следующими функциями:
Вы можете скачать двоичные для вас платформы и поставить где - то в пути или установить с
cargo
(требуется ,rust
чтобы быть установлено ):Тогда использование будет таким:
Не нужно
Python
иMercurial
быть установленным. Расширенная настройка позволяет заменять авторов или ветки, делать префиксы веток и многое другое.источник
Если вы используете github.com , у них, похоже, есть функция импорта, которая позволяет вам просто ввести URL вашего hg проекта.
Сначала создайте новый репозиторий, а затем на целевой странице нового репозитория прокрутите вниз и нажмите кнопку «Импортировать код» .
Затем введите URL вашего предыдущего хранилища и нажмите «Начать импорт».
Тогда GitHub позаботится об остальном!
Обратите внимание, что GitHub запросит у вас учетные данные для старого репозитория, если они ему нужны.
Ooh! Я нашел официальный путеводитель
источник
На Windows может быть немного сложнее. После включения правильных плагинов в mercurial (
hggit
) TortoiseHG также можно использовать.Используя консоль:
% hg bookmarks hg
% hg push <relative path to>/<git-repo>
источник
Может быть, это кому-то помогает сегодня (при преобразовании ртутного репозитория в git при сохранении истории). Проверено на работу с Mercurial 4.0.1.
И, наконец, подтолкнуть ваш недавно преобразованный локальный репо.
источник