2008-09-22 12 views
8

En el trabajo, tenemos un Windows Server 2003 con IIS y Subversion instalados. Lo usamos para publicar y probar localmente nuestros sitios web ASP.NET. Cada programador tiene instalado Tortoise en su PC y puede actualizar/enviar contenido al servidor. Alojar los repositorios está funcionando bien. Pero los archivos guardados en esos repositorios necesitan ser copiados a nuestro IIS local (directorios virtuales).¿Cómo puedo publicar un repositorio de subversión en un IIS local?

¿Cuál es una manera fácil de publicar esos repositorios de subversión en nuestro IIS local?

Editar:
Gracias a puetzk he añadido un archivo bat sencilla que se ejecuta cada vez que se produce una confirmación (comprobar el subversion documentation sobre ganchos). Mi archivo bat solo contiene:

echo off 
setlocal 

:: Localize the working copy where IIS points) 
pushd E:\wwwroot\yourapp\trunk 
:: Update your working copy 
svn update 

endlocal 
exit 

Respuesta

12
  1. Simplemente tenga el área del archivo del servidor web como una copia de trabajo, y realice un svn arriba cuando quiera "publicar". Configúrelo para ocultar el contenido de las carpetas .svn si le parecen desordenadas (no sé específicamente cómo hacerlo, pero supongo que se puede hacer). Ya tendrán el bit oculto del sistema de archivos, que puede solucionar esto.

  2. Si lo quiere realmente automático (actualizaciones tan pronto como alguien se comprometa), use una secuencia de comandos de anzuelo post-commit en el servidor SVN para iniciar el primer proceso.

Otros en los comentarios han sugerido usar exportación en lugar de pago. Eso también puede funcionar, y evita el desorden de .svn, pero tiene dos inconvenientes. Uno, tiene que volver a descargar todo el contenido cada vez, no solo los archivos modificados (ya que no mantuvo el directorio .svn para recordar lo que tiene). Si tienes muchos archivos, esto será mucho más lento. Dos, la actualización reemplaza el archivo de forma atómica (escribe la nueva versión en .svn/tmp y luego la coloca en su lugar). Exportar escribe el archivo gradualmente en su destino mientras se descarga. Eso significa que la exportación podría entregar un archivo incompleto a alguien que lo navegó en el momento equivocado.

+0

Eso funcionaría bien. Podría llevarlo un paso más allá y crear un script NANT para hacer ese trabajo por usted, posiblemente haciendo una exportación SVN en lugar de un pago y envío. – JKueck

+0

Soy fanático de guardar los scripts de Nant como parte del proyecto. Visite http://www.dimecasts.net/Casts/ByTag/NAnt. – JKueck

+0

@puetzk: ¡Muchas gracias por la gran ayuda! – jdecuyper

6

SVN no es compatible con IIS; Sin embargo, puedes run the standalone svnserve server as a windows service.

Está el SVN FAQ entry al respecto, y esta publicación en el blog en Vertigo Software blog también puede ser útil.

ACTUALIZACIÓN: Después de su aclaración, veo que lo que busca es una forma de actualizar automáticamente el código en el servidor después de que se registró Mira en CruiseControl.NET, después de ver el subversion integration tutorial parece que se debe hacer. Lo que quieras.

ACTUALIZACIÓN 2: Este tutorial describe integrating Subversion, CruiseControl.NET and Nant.

+0

A menos que me entienda mal, @jdecuyper Está buscando una manera de publicar el contenido de su repositorio, no una manera de ser el anfitrión. – puetzk

+0

@puetzk tiene razón. Edité mi pregunta para mayor claridad. – jdecuyper

+0

Ah, creo que no entendí bien. En ese caso, la respuesta de @ puetzk es absolutamente correcta. También puede usar un kit de herramientas de integración continua para eso; Estoy agregando eso a mi respuesta. – Aeon

1

El uso puede usar el Visual-SVN Server gratuito para instalar rápidamente Subversion con interfaz Apache. También tiene un buen complemento MMC para administrar el servidor y los repositorios.

Deberá poder acceder a subversion con HTTP o HTTPS, pero el número de puerto debe ser diferente del que usa su IIS local (el puerto predeterminado para el servidor Visual-SVN es 8080).

Si realmente necesita acceder a los repositorios utilizando su puerto IIS local 80, puede probar SVN-IIS que actúa como un puente entre su IIS y Apache. Aunque no he probado este.

+0

En realidad, estamos usando Visual-SVN Server (lo que es genial por cierto) y podemos acceder a nuestros archivos a través de HTTP (puerto 8443). Pero los archivos aspx no se sirven (solo se muestran en texto plano) y necesitamos que se procesen. – jdecuyper

2

quizás SVNIsapi puede resolver el problema (http://www.svnisapi.com). Porque solo utiliza una instalación de IIS, por lo tanto, no necesita un servidor APACHE o un servicio SVNSERVER. En segundo lugar, debería ser posible apilar el plugin ISAPI de ASP.NET en el procesamiento de SVNISAPI, de modo que una página ASP.NET (.aspx) se interprete después de que se lea desde el repositorio.

Saludos Paolo

+0

http://www.svnforum.org/2017/viewtopic.php?p=27697&sid=2faf39599084cfedb7b3f8d83cc515ce Paolo - este foro dice que svnisapi.com levantó el contenido de otro SVN en el sitio de Windows (http: //www.sublimesvn. com). Es posible que desee refutar ese comentario y aclarar su relación con la empresa. Tenga en cuenta que no estoy afiliado a ninguno de estos productos, solo estoy investigando posibilidades para nuestra propia instalación de svn. –

Cuestiones relacionadas