¿Cómo puedo reducir un depósito de mercurial eliminando los conjuntos de cambios anteriores?Eliminación de conjuntos de cambios o reducción de un depósito de Mercurial
Respuesta
Fundamentalmente, no se puede. Mercurial tiene una regla dura y rápida de que un conjunto de cambios solo puede existir en un repositorio si cada uno de sus conjuntos de cambios ancestrales también existe en ese repositorio.
Puede, sin embargo, crear un nuevo repositorio cuyos conjuntos de cambios correspondan a un subconjunto de los conjuntos de cambios posteriores en otro repositorio. Sin embargo, no serán los mismos conjuntos de cambios, ya que tendrán diferentes nodos hash, y los clones del repositorio original no funcionarán con el nuevo ("repositorios no relacionados").
Se podría tratar de crear una nueva operación que refleja sólo algunos de los nuevos conjuntos de cambios en otra cesión temporal mediante un proceso como este:
hg -R /path/to/bigrepo export 10:tip > latestchanges.patch
hg init newsmallrepo
hg -R newsmallrepo import < latestchanges.patch
Eso sería copiar sólo los conjuntos de cambios numeradas 10 y más tarde en nuevos conjuntos de cambios con diferentes valores hash en el nuevo repositorio. Tampoco funcionará terriblemente bien con las fusiones.
Consulte la extensión convert
(incluida con Mercurial). Un ejemplo sencillo es el siguiente:
hg convert <src> <dest> --config convert.hg.startrev=<rev>
Esto generará un nuevo repositorio, sin relación que comienza con la revisión especificada, dejando caer la historia anterior. Manejará fusiones también. Todos los usuarios deberán clonar la nueva versión del repositorio, ya que todos los hash de los conjuntos de cambios cambiarán.
habilitar la extensión añadiendo lo siguiente a mercurial.ini
:
[extensions]
convert =
Run hg help convert
para las opciones.
en ** Windows **, agregar/crear todo en *** 'C: \ Users \
Uso Windows y Mercurial.ini. Ambos funcionarán. Ver [hgrc docs] (http://www.selenic.com/mercurial/hgrc.5.html). –
- 1. Encontrar conjuntos de cambios en mercurial mediante la eliminación del parche
- 2. limpiando un depósito Mercurial
- 3. Configuración de mercurial: ¿un depósito central o varios?
- 4. Mercurial: Eliminar archivo de todos los conjuntos de cambios
- 5. Mercurial - diff múltiples conjuntos de cambios en la misma hora?
- 6. Mercurial: etiquetar un conjunto de cambios particular
- 7. Disposición de depósito Mercurial para múltiples ramas
- 8. Estructura recomendada de depósito/carpeta Mercurial para un usuario SVN
- 9. Deshacer una acción de eliminación en Mercurial
- 10. TFS: comparar conjuntos de cambios
- 11. ¿Mercurial hace un mejor trabajo al fusionar archivos cuando los conjuntos de cambios son pequeños?
- 12. Con Mercurial, ¿cómo puedo "comprimir" una serie de conjuntos de cambios en uno antes de presionar?
- 13. Agregando cambios de un repositorio de Mercurial a otro
- 14. Editar el autor para conjuntos de cambios específicos
- 15. Examinando un único conjunto de cambios en Mercurial
- 16. TFS - Obtenga un rango de conjuntos de cambios
- 17. Archivo de depósito de Git con cambios no confirmados
- 18. TFS: etiquetas frente a conjuntos de cambios
- 19. mercurial: prueba si una rama contiene un conjunto de cambios
- 20. ¿Cómo puedo agrupar solo una gama de conjuntos de cambios?
- 21. En mercurial, ¿cómo puedo encontrar los conjuntos de cambios que contienen una cadena?
- 22. Para Mercurial, ¿podemos impulsar algunos conjuntos de cambios y no presionar algunos?
- 23. En Mercurial, ¿hay alguna manera (aparte de "Cherry picking") de empujar un conjunto de cambios sin presionar también los conjuntos de cambios asociados con una cabeza diferente?
- 24. ¿Determinando el conjunto de cambios 'activo' con Mercurial?
- 25. Obtener cambios de mercurial al sitio FTP
- 26. Etiquetado de mensajes de compromiso y conjuntos de cambios
- 27. Cómo modificar un conjunto de cambios "público" en Mercurial
- 28. Prueba de cambios no confirmados en mercurial
- 29. ¿Clases de depósito individuales o múltiples?
- 30. ¿Cómo explorar los conjuntos de cambios de TFS?
Esta es la solución. He buscado estos comandos y no los he encontrado. Gracias Ry4an! –