2014-01-10 4 views
2

Я должен преобразовать ветвистый ртутный репо в git repo. И продолжают тянуть изменения от mercurial до git (только в одну сторону) в течение некоторого времени. Существующие ответы hg-to-git, похоже, неправильно обрабатывают ветви. Например, небольшой рт.ст. репо «по умолчанию» и «Br1» результаты филиалов в этом:Преобразование ветвей hg в ветви git?

$ 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 считает, что существует только одна ветвь «мастер». Как я могу заставить свои ртутные ветви появляться в виде одинаково названных ветвей гита? Я могу жить с «мастером» вместо «по умолчанию», но у меня должны быть все мои другие имена в git.

ответ

1

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

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

git branch <localname> <remotename> 

Например:

git branch br1 hg/br1