publicar un website usando svn export

Actualmente transfiero todos mis files a mi website cuando hago una actualización (a través de una connection adsl lenta)

Y quiero facilitar las cosas, así que recién comencé a usar un service svn alojado, y pensé que podría acelerar un poco haciendo una export svn de mi website directamente a mi server web.

Lo intenté varias veces y parece funcionar bien, sin embargo, busca todo el sitio cada vez que es un poco lento para una actualización de 1 file

entonces mis preguntas son

¿es posible hacer una export y solo get los cambios desde la última export (cómo manejará esto los files eliminados?)

O será más fácil hacer una comprobación de svn y svn actualizarlo todo el time en lugar de svn export y simplemente ocultar las carpetas .svn usando apache htaccess

¿Es esta una buena idea, o hay una mejor manera de publicar mi website? Estoy tratando de lograr el tipo de implementación de 1 clic ideal

tal vez hay algunos gotcha que no he pensado que alguien más se haya topado

debian / apache / php

Haría un checkout de svn y lo habría hecho con éxito en un sitio en vivo durante varios años. Sin embargo, debe agregar reglas mod_rewrite a 404 los directorys .svn (y files).

Esto es lo que estoy haciendo en mi host:

Para cada proyecto, tengo una estructura que se parece mucho less a esto:

 ~/projects/myproj ~/public_html/myproj 

First dir es un checkout desde SVN, mientras que el segundo es solo svn export.

Tengo un pequeño script bash

 #!/bin/bash SOURCE="$HOME/projects/" TARGET="$HOME/public_html/" for x in `ls $SOURCE` do if [ -d $SOURCE$x ]; then svn update $SOURCE$x svn export --force $SOURCE$x $TARGET$x fi done 

La export se realiza desde la copy de trabajo, por lo que es muy rápido.

Puede que no sea exactamente la respuesta que está buscando, pero si tiene un acceso SSH a su server web (depende de su service de alojamiento, algunos de "bajo costo" no brindan ese tipo de acceso), puede usar rsync para "sincronizar" el sitio remoto con lo que tienes en tu disco.

En el pasado, estaba usando algo así como la idea que está describiendo (buscando el logging svn entre la última revisión enviada a producción y HEAD, parsing cada línea, y al final calculando qué enviar al server); pero no fue realmente un gran process; Ahora uso rsync, y me gusta mucho mejor.

(Aquí también, deberá excluir directorys .svn, por cierto)

Simplemente puede aceptar tener directorys .svn en su website (generalmente no es un problema, especialmente si lo configura para no permitir el acceso a estos): esta es la opción fácil. Alternativamente, haga lo que RaYell hace, y tenga dos copys de su website en el server web. Una salida normal fuera del directory web y otra en su directory web. Cuando actualice, simplemente exporte el svn (solo una copy con .svn dirs eliminados) en el directory web (y debe asegurarse de eliminar primero los files viejos si desea evitar que los files que se han eliminado de SVN permanezcan en su website) )

Hago algo como esto, usando robocopy set para duplicar el checkout de svn mientras excluyo directorys .svn, y obtengo la eliminación tanto de export como de file antiguo en un solo paso, minimizando así el time de inactividad si la copy toma mucho time. Estoy seguro de que esto también es fácil en Unix, si ese es su entorno de alojamiento. Por ejemplo, puede usar una rsync local: http://blog.gilluminate.com/2006/12/12/yes-you-can-rsync-between-two-local-directories/

Viejo tema, pero como esto es lo que surgió en Google durante mi investigación, pensé que podría agregar algo más. Recomiendo exportar al sitio en lugar de visitarlo. Me gusta mantener los repositorys y los sitios separados. Tampoco recomiendo exportar todo el repository al sitio cada vez, especialmente si solo cambian unos pocos files a la vez. Lo que puede hacer en su lugar es hacer una diferencia en el repository para ver qué ha cambiado de una versión a otra y solo exportar esos files. Más información en: http://www.joeyrivera.com/2011/automate-svn-export-to-site-w-bash-script/