Как преобразовать ртутный репозиторий в репозиторий git без потери веток? - PullRequest
1 голос
/ 14 мая 2019

Я хочу конвертировать Mercurial Repo в Git Repo.На самом деле я сделал, но я не видел ветви.После того, как я конвертировал репо, я вижу только одну ветку (как основную), я не вижу никаких других веток, но я вижу историю (все изменения) как правильную.при нажатии на любой коммит я вижу такую ​​информацию:

Date: 19 Nisan 2019 Cuma 15:14:37
Committer: sevgi.cakmak
Change dialog header

--HG--
branch : sevgi-2.0.0   

, но я не вижу ветку sevgi-2.0.0 на левой стороне (я использую sourcetree).

Мои шаги:

mercurial.ini файл:

[extensions]
strip = 
histedit = 
rebase = 
hggit = C:\Users\sevgi.cakmak\Desktop\hg-git\hggit
hgext.bookmarks =

[git]
intree = True

hg bookmark -r 2.0.0 master (также пытался так: hg bookmark -r default master), а затем я работал эту строку из cmd

hg gexport --debug //this line converting all revision

После обработки этой строки мой вывод выглядит так:

converting revision a318482e0769e2fceb13a1545cb477d60a00b434
converting revision e444655d161131f9ed1676f6c175813097fd18g8
converting revision 0ab06d22eaf4ff4ecb96caba343fdcc3a85e367k
converting revision 8a4e7f4defb0b04e76e67a825bedf746fe4f3fc5  ......etc

, а затем я обработал эту строку git config --bool core.bare false.В конце концов я открыл папку веток под .git и этот старый пустой.Я хочу видеть ветки в моем репо.

ссылка: https://helgeklein.com/blog/2015/06/converting-mercurial-repositories-to-git-on-windows/

также я пробовал быстрый экспорт, но не работал.

1 Ответ

2 голосов
/ 14 мая 2019

Из раздела документов Использование :

Hg-Git выдвигает ваши закладки на сервер Git как ветки и будет потяните ветки Git и установите их в закладки.

...

Конфигурация

...

git.branch_bookmark_suffix

hg-git не конвертирует между именованными ветками Mercurial и git ветви как два концептуально различны; вместо этого он использует Ртутные закладки для представления концепции ветки git. Поэтому при переводе репозитория hg в git обычно требуется создавать закладки, чтобы отразить все названные ветви, которые вы хотите чтобы увидеть, передан Git. Главное предостережение в том, что вы не может использовать то же имя для вашей закладки, что и имя указанной ветви, и, кроме того, нет никакого реального способа переименовать ветку в Mercurial.

Для случая использования, когда вы хотите перенести репозиторий HG на git и поддерживайте те же именованные ветви, что и на hg сторона, branch_bookmark_suffix может быть все, что нужно. это представляет строку «суффикс», которая будет распознана на каждой закладке имя и удаляется, когда закладка переводится в ветку git:

[git]
branch_bookmark_suffix=_bookmark

Выше, если в репозитории hg была названная ветка release_6_maintenance, вы можете связать его с закладкой release_6_maintenance_bookmark. hg-git затем скинет _bookmark суффикс этого имени закладки и создайте ветку git называется release_6_maintenance. При отступлении от мерзавца к рту _bookmark суффикс затем применяется обратно, если и только если hg с именем ветвь с таким именем существует. Например, когда изменения в release_6_maintenance ветка проверяется в git, это будет помещен в закладку release_6_maintenance_bookmark на hg. Но если новая ветвь с именем release_7_maintenance была перенесена на hg, и уже не было release_7_maintenance названной ветви, закладка будет названа release_7_maintenance без использования суффикс.

Опция branch_bookmark_suffix, как и опция авторов, предназначен для переноса устаревших hg по имени ветки. Идти вперед, ртуть репо, которое должно быть связано с git репо, должно использовать только закладки для именованного ветвления.

...