Estoy usando un repositorio SVN para mi trabajo de desarrollo web. Tengo un sitio de desarrollo configurado que contiene un checkout del repositorio.Utilizando el enganche SVN post-commit para actualizar solo los archivos que se han confirmado
He establecido un SVN post-commit gancho de modo que cada vez que un compromiso se hace al repositorio del sitio de desarrollo se actualiza:
cd /home/www/dev_ssl
/usr/bin/svn up
Esto funciona bien, pero debido al tamaño del repositorio las actualizaciones tomar un largo tiempo (aproximadamente 3 minutos) que es bastante frustrante cuando se realizan confirmaciones regulares. Lo que me gustaría es cambiar el gancho post-commit para actualizar solo aquellos archivos/directorios que se han comprometido, pero no sé cómo hacer esto. La actualización del "directorio común más bajo" probablemente sea la mejor solución, p.
Si la comisión de los archivos de seguimiento:
- /branches/feature_x/images/logo.jpg
- /branches/feature_x/css/screen.css
Sería actualizar el directorio :/branches/feature_x/
¿Alguien me puede ayudar a crear una solución que logre esto?
actualización:
- El repositorio y sitio de desarrollo se encuentran en el mismo servidor para problemas de red no deben estar involucrados.
- El uso de CPU es muy bajo, y las E/S deberían estar bien (se está ejecutando en un servidor dedicado de alta especificación)
- El sitio de desarrollo es de aprox. 7.5 GB de tamaño y contiene aprox. 600.000 artículos, esto se debe principalmente a que tienen múltiples ramas/etiquetas
me gusta la solución sed. Pero, ¿cómo podemos estar seguros de 4 caracteres antes de la ruta al nombre del archivo? –
@FelipeAlvarez No hay garantía de que no cambie. Pero, a partir de ahora (1.8.0), son [3 caracteres] (https://github.com/apache/subversion/blob/1.8.0/subversion/svnlook/svnlook.c#L568) y [un espacio] (https://github.com/apache/subversion/blob/1.8.0/subversion/svnlook/svnlook.c#L601), luego la ruta. –