Eu não tenho uma grande experiência com o Mercurial, sou principalmente um cara do Git.
Gostaria de espelhar uma pasta / arquivo Mercurial específico em um repositório git. Na verdade, estou tentando exportar o histórico de um arquivo de um repositório Mercurial para o Git e poder manter isso sincronizado com confirmações futuras.
Você tem alguma sugestão de como proceder? Acredito que o caminho a seguir deve ser o histórico do patch do Mercurial, exportar periodicamente cada commit único como um patch e aplicar os patches do Mercurial ao repositório Git.
Respostas:
No Linux ou qualquer coisa com
bash/sh
ou similar, oupython
tente com exportação rápida :fonte
PYTHON=python2 ~/fast-export/hg-fast-export.sh -r /path/to/old/mercurial_repo
. Além disso, funcionou perfeitamente.sudo easy_install mercurial
primeiro. Seria bom ter nas instruçõesWindows: Extensão TortoiseHG Hg-Git
O Hg-Git pode ser usado para converter um repositório do Mercurial em Git. Você pode usar um repositório local ou um repositório remoto acessado via SSH, HTTP ou HTTPS.
Exemplo de conversão de repositórios locais.
Instale o Hg-Git.
No Windows, o TortoiseHg vem com o Hg-Git, mas você precisa habilitá-lo através da ferramenta de configuração (na seção de extensões)
ou manualmente
~/mercurial.ini
Use os seguintes comandos para converter o repositório:
O
hg
marcador é necessário para evitar problemas, caso contrário, o hg-git envia para o ramo atualmente com check-out, confundindo o Git. Isso criará um ramo nomeadohg
no repositório Git. Para obter as alterações no mestre, use os seguintes comandos (necessários apenas na primeira execução, depois apenas usegit merge
ourebase
):fonte
Você pode (do lado Mercurial):
--filemap
opção converter parte do repositório original em menor com apenas diretórios de arquivos necessáriosou (em vez de hg-git), usando a ponte Mercurial no Git , clone | repositório pull do Git
fonte
Gitify
Parece ser uma alternativa mais moderna e fácil de usar para realizar a conversão https://github.com/buchuki/gitifyhg
fonte
Converter um repositório Mercurial para Git no Windows 10
Se não houver problema com a codificação - use a extensão TortoiseHG Hg-Git
Se algo de errado com a codificação - use exportação rápida
Instalar o Bash
Abra o PowerShell como administrador e execute:
Instale o Ubuntu 16.04 LTS da Microsoft Store
Abra o Bash e execute
instalar mercurial
obtenha a exportação rápida v180317 (no momento as versões após 180317 não funcionam corretamente)
converter repositório
opções de codificação:
-f
codificação, como-f cp1251
--fe
codificação de nome de arquivo como--fe cp1251
fonte
hg-git-fast-import
https://github.com/kilork/hg-git-fast-import
Outro utilitário com os seguintes recursos:
Você pode baixar o binário para sua plataforma e colocar em algum lugar no caminho ou instalar com
cargo
(requerrust
a instalação ):Então o uso é assim:
Não precisa
Python
eMercurial
deve ser instalado. A configuração avançada permite substituir autores ou ramificações, tornar as ramificações prefixadas e muito mais.fonte
Se você estiver usando o github.com , eles parecem ter um recurso de importação que permite digitar o URL do seu projeto hg.
Primeiro, crie um novo repositório e, em seguida, na página de destino do novo repositório, role para baixo e clique no botão "Importar código" .
Em seguida, digite o URL do seu repositório anterior e clique em "Iniciar importação".
Então o GitHub cuida do resto!
Observe que o GitHub solicitará suas credenciais para o repositório antigo, se necessário.
Ooh! Eu encontrei o guia oficial
fonte
No Windows pode ser um pouco complicado. Depois de ativar os plugins corretos no mercurial (
hggit
), o TortoiseHG também pode ser usado.Usando o console:
% hg bookmarks hg
% hg push <relative path to>/<git-repo>
fonte
Talvez ajude alguém hoje (ao converter um repositório mercurial em git, mantendo o histórico). Testado para funcionar com o mercurial 4.0.1.
E, finalmente, forçar seu repo local recém-convertido.
fonte