¿Cómo se define qué conjunto de cambios utiliza un horno / subrepositorio de mercurio?

StackOverflow https://stackoverflow.com/questions/8875127

  •  28-10-2019
  •  | 
  •  

Pregunta

En la respuesta a esta pregunta en el sitio de intercambio de la pila del horno, hay un comentario que menciona "si se compromete con un consumidor de la biblioteca, los otros consumidores de la biblioteca no ven inmediatamente esos conjuntos de cambios. Tiene que extraer explícitamente los cambios en el repositorio de la bibliotecaen otros consumidores ".

He agregado algunos archivos a un repositorio al que se hace referencia en los archivos .hgsub y .hgsubstate de un proyecto, pero no se muestran en el subrespositorio de proyectos (porque el proyecto está usando correctamente el conjunto de cambios anteriorfue asignado anteriormente)

Me gustaría saber cómo editar qué conjunto de cambios usa un subrepo.¿Acabo de editar el archivo .hgsubstate (parece un poco "pirateado") o hay una opción de sitio web de comando / horno que pueda usar?

¿Fue útil?

Solución

En el subrepositorio, hg update al conjunto de cambios que desea que utilice el repositorio principal.Luego, en el repositorio principal, emita hg ci para confirmar el cambio del subrepositorio.Mercurial actualizará automáticamente el archivo .hgsubstate con el ID del conjunto de cambios padre actual del subrepositorio.

Ejemplo (archivo .bat de Windows):

REM Create main repository
hg init Example
cd Example
echo >file1
hg ci -Am file1
cd ..

REM Create another repository
hg init Library
cd Library
echo >file2
hg ci -Am file2
cd ..

REM Clone the Library into the main repository
cd Example
hg clone ..\Library

REM and configure it as a subrepository.
echo Library=Library >.hgsub

REM Commit it.
hg ci -Am "Added Library sub repository."

REM Note .hgsubstate is updated with the current subrepo changeset.
type .hgsubstate
cd ..

REM Someone updates the original Library.
cd Library
echo >file3
hg ci -Am file3
cd ..

REM Main repo isn't affected.  It has a clone of Library.
cd Example
hg status -S

REM Update to the latest library
cd Library
hg pull -u
cd ..

REM View the changes to the library in the main repo.
hg status -S

REM Commit the library update in the main repo.
hg ci -m "Updated library."

REM Note .hgsubstate is updated.
type .hgsubstate
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top