¿Cómo configurar correctamente SVN en el server web?

He encontrado esta pregunta , pero nunca fue resuelta y no quiero secuestrarla por mi count. Trataré de dar tantos detalles como sea posible.

Tengo una count de alojamiento compartido en un server Linux que es mi server web, y tengo acceso de shell.

Estoy trabajando desde una máquina con Windows usando TortoiseSVN .

Tengo varios sitios web en mi public_html/ en el server de alojamiento y me gustaría poder hacer que los cambios que se realicen en mi máquina con Windows se propaguen al server con la mínima molestia. Básicamente, quiero alejarme de la carga manual a través de FTP.

Me gustaría mantener todas mis revisiones, pero en realidad nunca las necesito para verlas realmente, ciertamente no desde una interfaz web. Todo lo que quiero ver desde la web es la revisión actual.

Afortunadamente esa es la mayoría de los detalles orderados, ahora para la pregunta real. ¿Cuál es la mejor manera de configurar mi SVN para que funcione en mi carpeta public_html sin exponer todos mis directorys .svn al público?

Recomendaría no usar una copy de trabajo de pago en la producción. La mejor forma de upload a la producción es exportar. Si quieres algo de forma automática, podrías search algún script de implementación como Capistrano.

Si aún quieres hacerlo … podrías usar un htacccess para ocultarlos:

 <FilesMatch "\.svn/.*"> order deny,allow deny from all </FilesMatch> <Files .htaccess> order deny,allow deny from all </Files> 

Puede configurar Apache para que no permita el acceso a los directorys .svn , pero aún necesita que su server remoto tenga acceso a su repository local de Subversion, con todo lo que necesita ser configurado y asegurado: encryption, authentication, enrutadores, firewalls … .

Creo que el mejor compromiso entre flexibilidad y simplicidad es usar FTP pero hacerlo con una herramienta de synchronization de files. Puede exportar su copy de trabajo a un directory temporal y sincronizar desde allí o configurar la herramienta para ignorar los directorys .svn. El process de synchronization puede ser lento, pero automatizado no importa.

Además, no te olvides de los files no versionados. Algunos deben actualizarse manualmente (como establecer files creados a partir de templates versionadas) y algunos deben ignorarse (como files de caching y datos de usuario).

En cuanto a la herramienta mágica para hacer esto, todo … todavía estoy buscando el correcto. Hasta ahora, estoy usando el freeware SyncBack . Hace el trabajo, pero está diseñado como una herramienta de respaldo, por lo que puede ser difícil de configurar.