source - Reduciendo el tamaño del repositorio en Mercurial.
mercurial repository (4)
A veces, problemas como este pueden ser causados si tiene archivos binarios grandes en su repositorio. Cualquier actualización a ellos tiende a causar grandes diferencias y hace que el tamaño aumente más drásticamente de lo normal.
Si esto se aplica a usted, puede valer la pena ver la extensión de archivos grandes distribuida con Mercurial 2.0. No lo he usado personalmente, y parece que todavía tiene algunos bordes rouge, pero si incluye un comando lfconvert
que convertirá el repositorio para usted. A continuación, puede intentarlo para ver si se clona más rápido.
A medida que mi equipo trabaja en un proyecto dado con la fuente en un repositorio de Mercurial, el repositorio obviamente está creciendo en tamaño. Como tal, la clonación de un repositorio sobre la red se vuelve más lenta y más lenta.
¿Hay alguna técnica que se utilice para recortar confirmaciones antiguas o reducir el tamaño del repositorio para que la clonación sea más rápida en una red lenta?
(Estamos utilizando TortoiseHg como el cliente de Mercurial pero eso (supongo) no debería hacer una diferencia en la solución a este problema).
Puede usar un clon dedicado del repositorio remoto en su computadora como caché para las operaciones de clonación. Por lo tanto, no es necesario transferir todo el repositorio a través de la red cada vez, sino solo las partes que aún no están allí.
Si solo necesita los archivos en una revisión determinada, pero nunca necesita examinar el historial ni realizar nuevos confirmaciones, la descarga de una instantánea puede ser más rápida.
El script hgweb
CGI normal puede proporcionar un archivo zip o tar para cualquier revisión . Los archivos se generan sobre la marcha. Solo necesitas añadir
[web]
allow_archive = gz, zip, bz2
a su archivo de configuración. A continuación, puede encontrar archivos en direcciones URL como
http://server.com/repo/archive/rev.zip
Reemplace el número de revisión con el nombre de rama que cambia el hash que desea. Descargue el archivo con wget
, curl
o una herramienta similar.
Esta estrategia solo se amortiza cuando el historial es muy grande en comparación con el tamaño de un solo conjunto de cambios.
Este puede ser el caso si el repositorio contiene archivos grandes que cambian a menudo. La extensión largefiles puede ser una alternativa aquí: le permite descargar solo los archivos necesarios para la revisión que realiza el proceso de pago. De esa manera, evitará descargar el historial de archivos grandes y ahorrará una gran cantidad de ancho de banda.
Una opción es usar la extensión de convert
para descomponer su repositorio en un grupo de repositorios más pequeños.
Digamos que tiene un repositorio que ha evolucionado para contener muchos proyectos (carpetas). Y ha decidido que estaría mejor si cada proyecto (carpeta) fuera un repositorio separado. Puede usar la extensión de
convert
para hacer precisamente eso y conservar su historial de cambios.