2009-06-27 23 views
17

Tengo un sitio web bajo svn y quiero parchar el sitio web en vivo con lo que está actualmente en el repositorio (es decir, llamando efectivamente a svn update en el sitio web en vivo), pero no quiero .svn directorios en cada carpeta en el sitio web de producción.svn checkout y actualización sin el directorio .svn

¿Hay alguna manera de configurar svn para que la carpeta .svn con información de versión no esté en el mismo directorio que los archivos bajo control de versión?

En git puedes crear y separar un árbol de trabajo y enviar actualizaciones a un proyecto de esta manera (según http://toroid.org/ams/git-website-howto), básicamente quiero poder hacer algo similar en svn.

+0

En realidad estaba pensando en rsync para un sitio web git seguido, así que gracias por la punta. PD svn era solo un paso evolutivo, ahora solo de interés histórico. ¡gracias de nuevo! –

Respuesta

37

svn export funciona de manera similar a un checkout pero sin los directorios .svn. Sin embargo, no se puede update una estructura de este tipo ya que no es una copia de trabajo svn.

También puede configurar el servidor web para no permitir el acceso a los directorios .svn y simplemente vaya con el método de verificación + actualización.

+1

Consulte esta pregunta para obtener información sobre cómo hacer la segunda opción: http://stackoverflow.com/questions/214886/how-do-i-hide-directories-in-apache-specifically-source-control –

7

¿Qué tal rsync configurado para no copiar directorios ".svn"?

rsync --exclude=.svn local_svn_copy webserver:site/

Esto se puede volver a ejecutar para actualizar la copia del servidor web.

1

Como laalto ha mencionado svn export lo convierte en un método fácil pero no es muy eficiente para la actualización de una "copia de trabajo" cuando se utiliza en repetidas ocasiones:

[email protected]:~$ svn export --non-interactive --force "<URL>" <directory> 
1

También es posible usar git-svn para crear un espejo git del sitio web y luego publique la forma descrita en el artículo que ha vinculado. Obviamente, esta no es una solución directa.

2

httpd.conf:

<Directory ~ "\.svn"> 
    Order allow,deny 
    Deny from all 
</Directory> 
Cuestiones relacionadas