el file de lote de Windows sale al ejecutar commands mercurial

Para la copy de security diaria de mis repositorys mercuriales en Windows XP utilicé un file por lotes simple hg_backup.bat que acaba de hacer algunos cambios de directory y llamadas mercuriales con un command de pause al final como este:

 @Z: @cd \hg_backup\drawings hg pull -v @cd \hg_backup\src\scripts hg pull -v @cd \hg_backup\eagle4\lbr hg pull -v @pause 

Esto funcionó bien con mercurial hasta 1.7 (instalado con TortoiseHg). Sin embargo, desde mercurial 1.8 se inicia el primer command mercurial y luego se cierra abruptamente sin alcanzar los siguientes commands o incluso el final del script. La window de command simplemente desaparece.

Tuve el mismo problema un time antes, cuando intenté lo mismo con git, pero no investigué más, porque uso git solo para un repository. Me parece que hay un código de retorno de la llamada de command-line hg implicada que hace que el script termine en lugar de ejecutar el otro command, pero no pude verificarlo todavía.

¿Alguien tiene una idea de por qué sucede esto o incluso cómo solucionarlo?

Si su hg es un hg.bat o hg.cmd , use call hg y vea si comienza a funcionar.

El intérprete de commands de command.com ejecuta los files por lotes reemplazando el guión anterior (para save la memory) y requiere el uso de una call para iniciar un guión por lotes y continuar la ejecución más tarde. Este comportamiento permanece en Windows cmd.exe para compatibilidad.

Tenía exactamente el mismo problema, pero la solución provista por @grawity no funcionó para mí (y no tengo idea de por qué).

La solución en mi caso era replace la call con cmd /C , así:

 cmd /C hg sum cmd /C hg stat