2011-01-16 11 views
5

Recientemente he leído este artículo: http://www.smashingmagazine.com/2009/09/25/svn-strikes-back-a-serious-vulnerability-found/Usando SVN en el desarrollo web

Desarrolladores de muchos sitios populares como apache.org, php.net (http://ru2.php.net/.svn/entries), classmates.com y Yandex ruso usan SVN, pero no siguen las recomendaciones dadas por SVN (para usar el comando export).

Entonces, ¿Cuáles son las razones para no usar svn export en lugar de actualizar la copia pública como todas?

Respuesta

2

Desde mi perspectiva, lo que hago es bloquear/bloquear el acceso a cualquier archivo .svn en el servidor (ya sea Apache2 o IIS) de esta manera las carpetas ocultas no son accesibles externamente y permite el seguimiento de versiones para los sitios que usamos que no requieren la compilación antes de despliegue

idiomas como:

  • PHP
  • ASP (no .NET)
  • HTML plano
  • COLDFUSION
  • Versiones de PDF/IMAGE (si es necesario, en mi caso lo necesitamos para documentos PDF actualizados para los clientes).

Así que sin duda se puede usar SVN para el desarrollo web, pero sí es necesario que las precauciones que expone sus .svn carpetas para el mundo si no es prudente. De lo contrario, es una herramienta que podría utilizar para hacer que su trabajo sea más fácil y más eficiente.

Dicho esto, simplemente ejecutamos un SVN UPDATE en nuestra producción para actualizar los archivos cambiados, y con desarrolladores limitados que trabajan en un código a la vez (como dije en mi caso) no obtenemos confusiones con errores cosas que se implementan. PLUS para estar seguro, siempre haga un SVN COMPRUEBE LAS MODIFICACIONES para ver qué se va a actualizar y, si comete un error, vuelva a colocarlo.

+0

¿Y por qué no usas' svn export'? – Azat

+1

Debido a que solo utilizamos la exportación de SVN para proyectos que necesitamos compilar ** PERO ** tampoco lo hacemos de esa manera, ya que tenemos la configuración de Hudson para desplegar construcciones automáticamente para nosotros (ASP.NET + JAVA). – Jakub

4

Algunas personas, sin incluirme a mí, piensan que para implementar en producción solo debe emitir un svn up. Si realiza una exportación, pierde los metadatos sobre el control de versiones para que no pueda hacer eso, tiene que usar otro mecanismo para rastrear qué versión es dónde. Es una solución fácil, pero creo que puede hacer para el empaquetado diferido y también para "fijar en producción", como si lo hiciera, también puede verificar desde la producción ...

+0

Debo decir, sin embargo, que este método tiene un poco más para recomendar, cuando solo archivos estáticos, como imágenes, HTML y php, por ejemplo. Se pone rápidamente malo cuando tienes jsp u otras cosas donde el código ejecutable es de alguna manera un objeto derivado. – time4tea

+0

sí, la exportación es el camino a seguir, ¡no quiere un montón de archivos .svn en su raíz web! – rook

+0

Estaba pensando más que si simplemente se quedaba dormido, entonces es posible que no haya probado realmente lo que implementa, o puede que se olvide de etiquetarlo, o puede que no tenga las aprobaciones correctas, etc.Preferiría implementar algo que haya pasado por todas las pasarelas/aprobaciones. – time4tea

1

Con svn export los archivos nunca se pueden eliminar , solo agregado y modificado. Esto podría ser un problema a veces.

+2

es por eso que exportas a un directorio (s) diferente y luego 'rsync' al directorio (s) de despliegue :-) – prodigitalson

0

Cuando todo el sitio web es de código abierto y está disponible para su descarga a través de un recurso público (como PHP's). Proteger los directorios .svn para que los demás no puedan obtener el código fuente probablemente no valga la pena simplemente haciendo un svn up.