2010-10-19 15 views

Respuesta

13

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.

+0

Esta es la solución. He buscado estos comandos y no los he encontrado. Gracias Ry4an! –

11

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.

+0

en ** Windows **, agregar/crear todo en *** 'C: \ Users \ \ mercurial.ini' * no funcionó, pero ** ajustando el existente **' C: \ Users \ \. El archivo hgrc' ** hizo el truco :-) (hg 2.7.1) –

+0

Uso Windows y Mercurial.ini. Ambos funcionarán. Ver [hgrc docs] (http://www.selenic.com/mercurial/hgrc.5.html). –

Cuestiones relacionadas