2011-06-09 16 views
16

Hola Busco ejemplos de cómo escribir ganchos Mercurial en un lenguaje .NET, incluyendo cómo configurar .hg/HGRMercurial, escribiendo ganchos mediante una API .NET

he utilizado el "Mercurial.Net "Api, pero la información en las variables de entorno de Windows es un poco limitada y la devolución de mensajes de error en el canal de error estándar no parece funcionar. Creo que estoy haciendo algo mal.

estoy usando .Net para una serie de razones, una de ellas para enlazar con otros sistemas que utilizan la CWF

+2

Hola, si estás hablando de mi proyecto de código abierto, http://mercurialnet.codeplex.com, me complacerá ayudarte, si puedo. Lamentablemente, estoy ausente en una conferencia hasta más tarde (aproximadamente 12 horas) por lo que no tendré acceso a mi computadora hasta entonces. Lamentablemente, todavía no he creado ningún gancho, así que necesito leer sobre cómo hacerlo. Si es necesario, puedo agregar cambios a la biblioteca para que sea más fácil hacer ganchos. –

+2

Hola. Se ha comenzado a trabajar en la implementación del soporte hook en Mercurial.Net, hasta que termine no publicaré una "respuesta" real aquí en SO, pero puede seguir el trabajo en https://lassevk.kilnhg.com/Repo/ MercurialNet/dev/hooks y pesa en http://mercurialnet.codeplex.com/discussions/261283 –

Respuesta

9

editar la nueva versión de Mercurial.Net hace más fácil escribir ganchos, ver ver http://mercurialnet.codeplex.com/discussions/261283

  1. Cree un proyecto de "Aplicación de Windows" (por ejemplo, MyHook).
  2. Agregue una referencia a "Mercurial.Net" (puede usar NuGet para hacerlo más fácil http://nuget.org/List/Packages/Mercurial.Net).
  3. En su método principal, haga el procesamiento que desee (por ejemplo, recupere el registro y luego la información en el último compromiso - vea http://mercurialnet.codeplex.com/discussions/261283 para ver ejemplos). Puede agregar un MessageBox.Show(message) para verificar que el gancho se haya ejecutado.
  4. Compile su proyecto.
  5. Añadir el gancho a su archivo .hg/hgrc (a continuación es un ejemplo de un gancho que se ejecutará después de cada confirmación, vea https://www.mercurial-scm.org/wiki/Hook para obtener más información, , incluso para más información):

    [hooks] 
    commit.hook1 = "C:\path to file\MyHook.exe" 
    

La próxima vez que ejecute su gancho debe ejecutarse.

Compruebe http://docs.vkarlsen.no/Mercurial.Net/ para aprender sobre las clases de Mercurial.Net.