2012-02-20 13 views
6

Nuestro proyecto tiene un par de subrepos remotos en él, y sus direcciones se han movido recientemente de http://host/path a http://other_host/path. ¿Cómo se puede volver a una revisión de, por ejemplo, el mes pasado, donde Mercurial cree que el subrepo se puede encontrar en http://host/path?Actualización a revisiones Mercurial antiguas con subrepos que se han movido

$ hg -v up -d 1/20/2012 
Found revision 1091 from Fri Jan 20 10:22:29 2012 -0600 
resolving manifests 
abort: error: No connection could be made because the target machine actively refused it 


$ hg --debug up -d 1/20/2012 
Found revision 1091 from Fri Jan 20 10:22:29 2012 -0600 
resolving manifests 

<snip...> 

subrepo merge 0f0f2b807811+ 0908d5249a6f 0f0f2b807811 
    subrepo external/our_remote_repo: both sides changed, merge with https://old_host/external/our_remote_repo:c66cf52ce1f240193190cec392d889618c09f22b:hg 
using https://old_host/external/our_remote_repo 
sending capabilities command 
using auth.old_host.* for authentication 
abort: error: No connection could be made because the target machine actively refused it 

Respuesta

6

Según documentation puede usar [subpasa] en hgrc a remap such urls.

Esto se reduce a la definición de ubicaciones de origen subrepositories reglas de reescritura en forma de

<pattern> = <replacement> 

donde patrón es una expresión regular que coincida con la fuente y la sustitución es la cadena de sustitución utilizado para volver a escribir. Los grupos pueden combinarse en patrones y referenciarse en reemplazos. Por ejemplo:

http://server/(.*)-hg/ = http://hg.server/\1/ 

reescribe

http://server/foo-hg/ into http://hg.server/foo/. 
+0

impresionante, gracias – moswald

-5

No puede hacerlo. Mercurial devuelve en el estado, que tenía exactamente en esta revisión (URL del subrepo, revisión en subrepo)

+2

@michel solución de Sznajder funcionará igual de bien. –

Cuestiones relacionadas