Конвертировать hg ветки в git ветки?

Я должен преобразовать разветвленное Mercurial Repo в GIT-репо И продолжать в течение некоторого времени продолжать переносить изменения из Mercurial в Git (только в одну сторону). Существующие ответы hg-to-git, кажется, не обрабатывают ветви правильно. Например, небольшое репозиторий hg с ветками 'default' и 'br1' приводит к такому:

$ hg branches
br1                            3:a8914879f6bb
default                        2:4e6221bce113

cd ..
git-hg clone file:/path/to/hgrepo gitrepo

...<snip>
From .git/hgremote
 * [new branch]      br1        -> hg/br1
 * [new branch]      master     -> hg/master
From .git/hgremote
 * branch            master     -> FETCH_HEAD

cd gitrepo
git branch --list
* master

Git думает, что есть только одна ветка 'master'. Как я могу сделать так, чтобы мои ветки Mercurial отображались как ветви Git с одинаковыми именами? Я могу жить с 'master' вместо 'default', но у меня должны быть все остальные мои именованные ветви в git.

1 ответ

Решение

Ветви импортируются как удаленные ветви, что означает, что они относятся к удаленному репозиторию, который является hg-репозиторием. Если вы печатаете git branch -a Вы сможете увидеть все ветви.

Вы можете создавать локальные ветви этих удаленных веток просто так:

git branch <localname> <remotename>

Например:

git branch br1 hg/br1
Другие вопросы по тегам