2011-03-03 16 views
15

Me gustaría utilizar mercurial en un servidor de Windows. Dado que quiero tirar y empujar a través de http, hg serve parece la solución más fácil. Funciona bien, pero lo reinicié después de cada reinicio, así que lo necesito como un servicio de Windows. Instalarlo manualmente con sc create ... no funcionó, creó un servicio que arroja un error cuando intento iniciarlo. He encontrado algunas referencias a este problemahg servir como servicio de Windows

pero están mal documentadas en todo caso. (Por supuesto, podría instalar un servidor web y usar hgweb, pero parece aún más complicado). ¿Tiene alguna experiencia sobre cómo configurar fácilmente hg serve ... <many args> como un servicio de Windows?

ACTUALIZACIÓN: Gracias por los diferentes enfoques. Nos quedamos con hg serve, el tipo de Windows en nuestra empresa logró instalarlo como un servicio no muy apropiado.

+2

Jeff's [sc create for svnserve example] (http://www.codinghorror.com/blog/2008/04/setting-up-subversion-on-windows.html) en codinghorror funcionó para mí, y hay múltiples args allí, es posible que pueda usar eso como plantilla. Después de descubrir que sc es muy quisquilloso con los espacios entre 'abc = value', eso es. – Rup

Respuesta

3

Debe consultar Jerremy Skinner his blogpost sobre este tema. Él explica cómo puedes alojar repositorios Mercurial en IIS7 y usar un buen enrutamiento url. Lo hice en mi máquina y funciona como un encanto. Requiere algo de configuración, pero vale la pena.

1 error en su publicación Me di cuenta que estaba escribiendo sobre hgwebdir.cgi, pero no pude encontrar esa. Encontré un hgweb.cgi, así que hice el copiar y pegar con este archivo.

+4

hgwebdir.cgi se renombró a hgweb.cgi con la revisión 1.6. –

4

O usted podría utilizar el SCM-Manager

+1

Este es hasta ahora el método más fácil para servir repositorios HG que he probado en Windows. El archivo de inicio de bat tiene un parámetro de instalación que instalará la aplicación como un servicio de Windows. Muy agradable. –

5

El uso de un servidor web como Apache/lighttpd/IIS proporciona una gran cantidad de características tales como la autenticación o HTTPS apoyo. Pero 'hg serve' es una solución simple y rápida. Además, 'hg serve' puede servir a múltiples repositorios. Pero hg serve no se puede ejecutar como un servicio de Windows porque no puede responder a los comandos de control de Windows. Entonces, usar HgService es una buena solución para hacer que 'hg serve' sea un servicio real de Windows.

Aquí hay un ejemplo de mi configuración. He seguido los pasos siguientes:

  • Instalar TortoiseHG
  • Instalar HgService
  • Crea "C: \ Repositorios" carpeta y poner necesarias repos en ella.
  • Crear "C: \ repositorios \ hgweb.config" con el siguiente contenido:
[paths] 
/= C:\Repositories\* 

[web] 
style = monoblue 
  • Modificar HgService.exe.config en C: \ Archivos de programa \ Mercurial \ HgService
<add key="CommandLine" value="hg.exe"/> 
<add key="CommandLineArguments" value="serve --prefix=/hg --address 0.0.0.0 --port 80 --web-conf c:\Repositories\hgweb.config -A access.log -E error.log" /> 
  • de inicio del servicio

Esperanza esta secuencia de acción será útil para usted también.

Cuestiones relacionadas