¿Cómo convertir un repositorio Mercurial existente para usar subrepositorios y mantener el historial intacto?

He estado leyendo sobre subrepositorios y cómo extraer una carpeta existente de un repositorio Mercurial a un subrepositorio utilizando la extensión de conversión y un mapa de archivos. Puedo hacer esto con éxito. Si tengo la siguiente estructura de carpetas:

C:\Project
---Project\root.txt
---Project\SubFolder
---Project\SubFolder\fileinsubfolder.txt

Puedo hacer un subrepository de SubFolder. De la misma manera, puedo extraer todo lo demás un repositorio separado (en este ejemplo, el segundo repositorio solo tendría el archivo root.txt). Luego puedo agregar el repositorio SubFolder como un subrepositorio al segundo repositorio. Pero aunque ambos repositorios tienen el historial completo, estos historiales no están vinculados => actualizar el repositorio raíz a un estado anterior no colocará el subrepositorio en el estado que debería tener en ese punto. La actualización a una revisión anterior coherente (tanto la raíz como el subrepo se actualizan automáticamente) solo funcionará cuando se actualice a una revisión que ya conozca el subrepositorio y tenga el archivo .hgsubstate.

Y la alternativa en la que pensé fue simplemente olvidar los archivos en SubFolder en el repositorio actual e iniciar un nuevo repositorio en SubFolder y al mismo tiempo agregar un archivo .hgsub. Lo que espero lograr aquí es trabajar desde este punto en adelante con un subrepositorio, pero aún tengo una forma de actualizar a una revisión anterior (antes de separar el subrepo) porque los archivos de SubFolder todavía están en la historia del repositorio actual.

Sin embargo, esto no funciona: cuando olvidé los archivos en mercurial, inicié un nuevo repositorio y lo vinculé como un subrepo en el repositorio actual y actualizo a una revisión anterior antes de que existiera el subrepo obtengo este error:

C:\Project>hg update 1
abort: path 'SubFolder\fileinsubfolder.txt' is inside repo 'SubFolder'

El problema aquí es que cuando se actualiza a una revisión anterior que no tenía conocimiento del subrepo, esta actualización desea colocar archivos en el Subcarpeta. Pero este SubFolder es aún otro repositorio (tiene un directorio .hg) y aunque el repositorio principal no tiene ningún recuerdo al respecto, la actualización no quiere poner archivos en el Subcarpete, ya que es un repositorio.

¿Hay alguna forma de evitar este error o hay un mejor método para cambiar a usar un subrepo para una carpeta determinada en un repositorio Mercurial existente y mantener el historial intacto (y ambos historiales vinculados)?

Respuestas a la pregunta(1)

Su respuesta a la pregunta