2012-06-19 13 views
8

Tengo un repositorio maestro, que tiene algunos cambios que no quiero comprometer.¿Cómo solo confío los cambios de un subrepo?

Tengo un subrepo, que tiene cambios que ya se han confirmado.

Quiero confirmar la revisión del subrepo de cambios en mi repositorio principal, sin comprometer los cambios en los archivos del repositorio maestro.

Parece que no puedo hacer esto. No puedo confirmar .hgsubstate y hacer un cambio trivial en un archivo para confirmar que no confirma los cambios en el subrepo al repositorio maestro.

+0

Si sus archivos modificados se llaman 'foo' y' bar', ¿ha intentado hacer 'hg ci -S -X foo -X bar'? – Helgi

Respuesta

9

Pase el nombre del subrepo para confirmar y Mercurial actualizará .hgsubstate y lo confirmará.

[email protected]:~$ hg init main 
[email protected]:~$ cd main 
[email protected]:~/main$ hg init sub 
[email protected]:~/main$ echo sub = sub > .hgsub 
[email protected]:~/main$ hg add .hgsub 
[email protected]:~/main$ hg commit 
[email protected]:~/main$ cd sub 
[email protected]:~/main/sub$ echo text > afile 
[email protected]:~/main/sub$ hg commit -Am first-in-sub 
adding afile 
[email protected]:~/main/sub$ cd .. 
[email protected]:~/main$ hg status 
[email protected]:~/main$ echo text > dont-commit-me 
[email protected]:~/main$ hg add dont-commit-me 
[email protected]:~/main$ hg status 
A dont-commit-me 
[email protected]:~/main$ cat .hgsubstate 
0000000000000000000000000000000000000000 sub 
[email protected]:~/main$ hg commit -m 'subrepo only' sub 
[email protected]:~/main$ hg status 
A dont-commit-me 
[email protected]:~/main$ cat .hgsubstate 
dec5eaa9e22cd0a05cbba3ba02fdb0e1f243e07e sub 

Tenga en cuenta que el archivo principal en dont-commit-me nunca se ha comprometido, pero el .hgsubstate se ha actualizado.

+0

Eso hizo el truco. ¡No puedo creer que no pensé en probar eso! –

+0

Esto es un poco engañoso, ya que 'dont-commit-me' no se hubiera cometido de todos modos. Si se hubiera agregado, entonces el argumento de 'commit' marcaría la diferencia. (Debo a Ry4an, sin embargo, como sé que es un maestro de Mercurial.) – harpo

+0

Tienes razón, @harpo. Debería haberlo agregado para que sea un mejor ejemplo. –

Cuestiones relacionadas