Tengo un script que está en el nivel superior de mi copia de trabajo y me gustaría usarlo como un gancho Mercurial. Si utilizo un nombre de ruta absoluto para el enlace, todo está bien, pero quiero un nombre de ruta relativo para que todo pueda moverse fácilmente, se use en otras copias de trabajo y otros desarrolladores puedan copiar el hgrc tal como está.Cómo usar un nombre de ruta relativo a un gancho Mercurial
/space/project/.hg/hgrc contiene
[hooks]
update = genid
El guión está en GenID/espacio/proyecto/GenID
El gancho se invoca muy bien si estoy en/espacio/proyecto pero si mi directorio actual es/space/project/src/tools, entonces 'hg update' dará un error ya que no se puede encontrar el enlace.
¿Qué pasaría si alguien hiciera una 'hg update null', borrando así el directorio de trabajo? Cuando intente ejecutar cualquier comando 'hg', intentará cargar la extensión que ahora no existe. Por supuesto, esto todavía puede ser un problema con rutas absolutas, pero es mucho más probable si el script de extensión está en el repositorio en el que está trabajando activamente. –
¡Bueno, no hagas eso entonces! Los ganchos están vacíos de manera predeterminada y deben agregarse proactivamente, de modo que si no va a haber una copia de trabajo, no agregue el gancho. Esto no será un problema para los otros desarrolladores que trabajan en el proyecto. –
@TimDelaney que no tendrá ningún efecto catastrófico: ejecutar el enganche simplemente fallará pero la confirmación aún ocurre –