Tenga en cuenta que esto podría ser el más adecuado en serverfault.com, pero como se trata de alojar un repositorio de código fuente de programador, no estoy del todo seguro. Publicaré aquí primero, confiando en que se migrará si es necesario.Hosting Mercurial en IIS7
Estoy intentando alojar clones de mis repositorios Mercurial en mi propio servidor (tengo el repositorio principal en otro lugar), y estoy intentando configurar Mercurial en IIS.
Seguí la guía here
, pero aparece un mensaje de error
.
Resuelto: Ver la parte inferior de esta pregunta para más detalles.
El mensaje de error es:
mercurial.error.RepoError: repository /path/to/repo/or/config not found
Aquí es lo que hice.
- He instalado Mercurial 1.5.2
- creé c: \ inetpub \ hg
- he descargado la fuente hg según las instrucciones de la página web, y copié el archivo hgweb.cgi en c: \ inetpub \ Hg (nota, la página web dice
hgwebdir.cgi
, pero no existe este archivo en particular,hgweb.cgi
significa, sin embargo, puede ser este el origen del problema?) he añadido un hgweb.config, con la siguiente contenido:
[paths] repo1 = C:/hg/** [web] style = monoblue
creé c: \ hg, crearon una prueba de subdirectorio, y creó un repositorio en su interior
- he instalado Python 2.6.5, la última versión 2.6 de la página web (la página web menciona que necesito instale la versión correcta o recibiré un mensaje de error específico, ya que no aparece un mensaje de error que se parece remotamente al mencionado, supongo que 2.6.5 no es el problema)
- Agregué un nuevo virtual host hg.vkarlsen.no, apuntándolo a c: \ inetpub \ hg
- Para este host, agregué una asignación de scripts en la sección Asignaciones de manejadores, mapeo * .cgi a
c:\python26\python.exe -u %s %s
según las instrucciones en el sitio web.
Luego lo probé navegando al http://hg.vkarlsen.no/hgweb.cgi, pero aparece un mensaje de error.
Para que sea más fácil para poner a prueba, se me cayó a un símbolo del sistema, navegado en c: \ inetpub \ hg y ejecuta el siguiente comando (mensaje de error es parte del texto a continuación):
C:\inetpub\hg>c:\python26\python.exe -u hgweb.cgi
Traceback (most recent call last):
File "hgweb.cgi", line 16, in <module>
application = hgweb(config)
File "mercurial\hgweb\__init__.pyc", line 12, in hgweb
File "mercurial\hgweb\hgweb_mod.pyc", line 30, in __init__
File "mercurial\hg.pyc", line 82, in repository
File "mercurial\localrepo.pyc", line 2221, in instance
File "mercurial\localrepo.pyc", line 62, in __init__
mercurial.error.RepoError: repository /path/to/repo/or/config not found
¿Alguien sabe lo que necesito ver para arreglar esto?
Editar: Ok, creo que me las arreglé para conseguir un paso más cerca de la solución, pero todavía estoy perplejo.
Realicé el.cgi archivo es un archivo de script en Python, y no algo de compilación, así que la abrió para la edición, y estas líneas estaba sentado en él:
# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "/path/to/repo/or/config"
Así que este era mi fuente para el mensaje de error específico.
Si cambio de la línea a esto:
config = "c:\\hg\\test"
Entonces puede navegar el repositorio vacío a través de la interfaz web de Mercurial.
Sin embargo, quiero alojar múltiples repositorios, y ya que la línea dice que yo también puedo enlazar a un archivo hgweb config, he intentado esto:
config = "c:\\inetpub\\hg\\hgweb.config"
Pero entonces me sale el siguiente mensaje de error:
mercurial.error.Abort: c:\inetpub\hg\hgweb.config: not a Mercurial bundle file
Exception ImportError: 'No module named shutil' in <bound method bundlerepository.__del__
of <mercurial.bundlerepo.bundlerepository object at 0x0260A110>> ignored
Nada de lo que he probado para la variable de configuración parece funcionar:
config = "hgweb.config"
config = "c:\\hg\\hgweb.config"
- Varias otras variaciones que no recuerdo.
Entonces, todavía perplejo, ¿alguien apunta?
Afortunadamente esta pregunta dará a otros información si están perplejos como yo.
Puede responderse a sí mismo y aceptar su respuesta, por lo que la pregunta no aparece como sin respuesta. – tonfa
Gracias por el recordatorio. –