No tengo una gran experiencia con Mercurial, soy principalmente un tipo Git.
Me encantaría reflejar una carpeta / archivo Mercurial específico en un repositorio git. Lo que realmente estoy tratando de hacer es exportar el historial de un archivo desde un repositorio de Mercurial a Git y poder mantenerlo sincronizado con las futuras confirmaciones.
¿Tiene alguna sugerencia sobre cómo proceder? Creo que el camino a seguir debe ser obtener el historial del parche Mercurial, exportar periódicamente cada confirmación como un parche y aplicar los parches Mercurial al repositorio de Git.
Respuestas:
En Linux o cualquier cosa con
bash/sh
o similar, opython
intente con exportación rápida :fuente
PYTHON=python2 ~/fast-export/hg-fast-export.sh -r /path/to/old/mercurial_repo
. Aparte de eso, funcionó a la perfección.sudo easy_install mercurial
primero. Sería bueno tener en las instruccionesWindows: extensión TortoiseHG Hg-Git
Hg-Git se puede usar para convertir un repositorio Mercurial a Git. Puede usar un repositorio local o un repositorio remoto al que se accede a través de SSH, HTTP o HTTPS.
Ejemplo de conversión de repositorios locales.
Instalar Hg-Git.
En Windows, TortoiseHg viene con Hg-Git, aunque debe habilitarlo a través de la herramienta de configuración (en la sección de extensiones)
o manualmente en
~/mercurial.ini
Use los siguientes comandos para convertir el repositorio:
El
hg
marcador es necesario para evitar problemas ya que, de lo contrario, hg-git empuja a la rama actualmente extraída, lo que confunde a Git. Esto creará una rama nombradahg
en el repositorio de Git. Para obtener los cambios en el maestro, use los siguientes comandos (solo necesarios en la primera ejecución, luego usegit merge
orebase
):fuente
Puedes (desde el lado de Mercurial):
--filemap
opción de convertir parte del repositorio original en más pequeño con solo los archivos | directorios necesarioso (en lugar de hg-git), usando el puente Mercurial en Git , clone | extraiga el repositorio de Git
fuente
Gitify
Parece una alternativa más moderna y fácil de usar para realizar la conversión https://github.com/buchuki/gitifyhg
fuente
Convierta un repositorio Mercurial a Git en Windows 10
Si no hay problemas con la codificación, use la extensión TortoiseHG Hg-Git
Si hay algún problema con la codificación, use la exportación rápida
Instalar Bash
Abra PowerShell como administrador y ejecute:
Instalar Ubuntu 16.04 LTS desde Microsoft Store
Abre Bash y corre
instalar mercurial
obtener la exportación rápida v180317 (en este momento las versiones posteriores a 180317 no funcionan correctamente)
convertir repositorio
opciones de codificación:
-f
codificación, como-f cp1251
--fe
codificación de nombre de archivo como--fe cp1251
fuente
hg-git-fast-import
https://github.com/kilork/hg-git-fast-import
Otra utilidad con las siguientes características:
Puede descargar el binario para su plataforma y colocarlo en algún lugar de la ruta o instalarlo
cargo
(rust
debe estar instalado ):Entonces el uso es así:
No necesita
Python
yMercurial
para ser instalado. La configuración avanzada permite reemplazar autores o ramas, hacer ramas con prefijo y más.fuente
Si está utilizando github.com , parece que tienen una función de importación que le permite simplemente escribir la URL de su proyecto hg.
Primero cree un nuevo repositorio y luego, en la página de inicio del nuevo repositorio, desplácese hasta la parte inferior y haga clic en el botón "Importar código" .
Luego escriba la URL de su repositorio anterior y presione "Comenzar importación".
¡Entonces GitHub se encarga del resto!
Tenga en cuenta que GitHub le pedirá sus credenciales para el antiguo repositorio si las necesita.
¡Oh! Encontre la guia oficial
fuente
En Windows puede ser un poco complicado. Después de habilitar los complementos correctos en mercurial (
hggit
), también se puede utilizar TortoiseHG.Usando la consola:
% hg bookmarks hg
% hg push <relative path to>/<git-repo>
fuente
Tal vez ayude a alguien hoy (cuando convierte un repositorio mercurial a git, mientras conserva el historial). Probado para trabajar con mercurial 4.0.1.
Y finalmente para impulsar su repositorio local recién convertido.
fuente