Pregunta

Estoy introduciendo Subversion en nuestra tienda web.Quiero que los archivos registrados se carguen en el servidor a través de FTP (y, a medida que se acostumbren a Subversion, a través de SFTP).Los archivos se envían a una página de candidato de versión con fines de prueba.Se puede llamar a un script para mover los archivos a producción.

Mi pregunta es esta:¿Cómo se transfieren los archivos al servidor a través de Subversion?¿Hay algún script que pueda agregar que realice la transferencia cuando se registren los archivos?

¿Fue útil?

Solución

Si tiene acceso de shell a su servidor y tiene SVN instalado (o la capacidad de instalar SVN), entonces su mejor opción puede ser simplemente omitir FTP por completo.

La forma en que implementamos nuestras aplicaciones es (simplificada)

  • Los desarrolladores escriben código y lo registran en el tronco
  • Periódicamente, cuando el tronco esté estable, tomaremos una instantánea del mismo como etiqueta.
  • En el servidor, svn verifica la etiqueta

Si es necesario realizar algún cambio en el servidor (o directamente en el servidor en vivo), es trivial usar Subversion para sincronizar el código.

Otros consejos

Desea crear una secuencia de comandos que utilice el enlace de confirmación posterior en SubVersion.Puede exportar el script desde su repositorio y luego enviarlo por FTP al servidor, o simplemente puede realizar el pago desde su repositorio a un directorio de trabajo en su servidor y llamar a "svn update" en el directorio de trabajo del servidor en su script de enlace posterior a la confirmación. .

Hay más información en las preguntas frecuentes de Subversion.

Creo que probablemente debería usar svn export en lugar de svn checkout para las implementaciones, de modo que no tenga esos directorios .svn enturbiando sus trabajos de copia de seguridad de producción.svn export es un pago "limpio".

También crearía un script que lo maneje todo por ti.Dependiendo de cómo esté estructurado su código, a menudo puede versionar sus directorios y simplemente actualizar un enlace simbólico a la última versión, lo que facilita las reversiones.

Incluso podrías usar algo como Capistrano para automatizar las implementaciones.Sin embargo, apoyo la recomendación de CruiseControl.

Creo que lo que estás buscando es algo así como integración con un script de compilación automática.He usado Control de crucero hacer algo similar con una aplicación ASP.Net.No conozco tus requisitos exactos, pero apuesto a que podrías conseguir que haga lo que quieras.

Los scripts posteriores a la confirmación son útiles para esto.Básicamente, en cada confirmación se llama a un script después del evento, que puede usar para realizar una exportación svn a cualquier lugar.

Un interesante artículo muestra cómo se podría hacer esto, y este muestra cómo se pueden usar scripts de enlace con subversion

Probablemente puedas usar los "ganchos" SVN para hacer esto.Básicamente, puede configurar su servidor para ejecutar scripts antes o después de cada registro.Aquí está el enlace directo a la sección correspondiente del libro en línea.

Apoyo la idea de Orión.Si tiene acceso de shell al servidor, en realidad es extremadamente fácil usar Subversion como herramienta de implementación.Sólo asegúrese de tener algunas reglas del servidor web configuradas para no exponer accidentalmente los directorios .svn.

svn2web enviará archivos ftp o scp desde un repositorio de subversion a un servidor web en cada confirmación.Ver el FuenteForge proyecto para más detalles.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top