Eu tenho tido grande sucesso com git-hg
a partir https://github.com/cosmin/git-hg (requer o trabalho de instalação de hg
, também). Ele suporta buscar, puxar e empurrar e é mais estável para mim do que hg-git
(recursos semelhantes do hg
git).
Consulte https://github.com/cosmin/git-hg#usage para obter exemplos de uso. A interface do usuário é muito parecida com git-svn
.
Isso git-hg
requer espaço em disco extra para cada repositório hg clonado. A implementação usa o clone completo do mercurial, um clone extra do git bare e o repositório real do git. O espaço em disco necessário é aproximadamente três vezes o uso normal apenas do git. As cópias extras são armazenadas abaixo do .git
diretório do seu diretório de trabalho (ou local indicado GIT_DIR
como de costume).
Aviso: O problema básico que git-hg
tenta resolver é que não há mapeamento 1: 1 entre git
e hg
recursos. O maior problema é a incompatibilidade de impedância entre os ramos git e ramos sem nome hg e hg chamado ramos e bookmarks hg (todos aqueles parecem muito com ramos para git
usuários). Um problema relacionado é que hg
tenta salvar o nome da ramificação nomeada original no histórico da versão, em oposição ao git, em que o nome da ramificação é adicionado apenas à mensagem de confirmação do modelo por padrão.
Qualquer ferramenta que pretenda criar uma ponte interoperável entre git
e hg
deve explicar como vai lidar com essa correspondência de impedância. Você pode decidir se a solução selecionada atende às suas necessidades.
A solução git-hg
usada é descartar todos os indicadores hg e converter ramificações nomeadas em ramificações git. Além disso, define o ramo mestre do git como padrão do ramo hg sem nome.