2012-05-11 15 views
6

que he estado buscando en diferentes formas de implementación de sitios usando git, y se encontró el siguiente tutorial:git desplegar de cartuchos

http://42pixels.com/blog/quick-and-dirty-git-deployment

me gustan las ideas presentadas en este tutorial, y estaría interesado en usándolo para mis sitios, solo que no parece ser compatible con los submódulos.

¿Hay alguna forma de que esto se pueda cambiar para que los submódulos también se extraigan y actualicen según sea necesario?

Gracias.

ACTUALIZACIÓN

He estado trabajando en este problema durante el último par de horas, y me parece estar haciendo progresos, pero todavía no puedo conseguir que funcione.

He cambiado a este tutorial: http://toroid.org/ams/git-website-howto (que es más o menos lo mismo, solo unos pequeños cambios), y después de seguir algunos consejos encontrados aquí: https://stackoverflow.com/a/6636509/1049688 Terminé con un archivo post-recepción que se parece a esto:

#!/bin/sh 

export GIT_WORK_TREE=/srv/www/limeblast.co.uk/htdocs_test 
export GIT_DIR=/srv/www/limeblast.co.uk/.git 
cd $GIT_WORK_TREE 

git checkout -f master 
git submodule init 
git submodule update 

todo esto parece muy bien en teoría, y parecería que los comandos submódulo se están ejecutando, pero yo estoy poniendo los siguientes mensajes de error de vuelta:

remoto: submódulo 'wordpress' (git: //github.com/WordPress/WordPress.git) registrado para la ruta 'wordpress' remote: Submódulo 'wp-content/themes/limeblastevolution/inc/cssCrush' (git: //github.com/peteboere/css-crush.git) registrado para la ruta 'wp-content/themes/limeblastevolution/inc/cssCrush ' remoto: fatal: el árbol de trabajo' /srv/www/limeblast.co.uk/htdocs_test 'ya existe. remoto: Clon de 'git: //github.com/WordPress/WordPress.git' en submódulo 'wordpress' ruta fallidos

¿Alguna idea? Gracias.

Respuesta

6

Puede tener éxito con git-deploy.

Pero si eso es demasiado centrado en los carriles o si no puede o no usarlo por otras razones, aquí es cómo forzar una actualización del submódulo en un post-commit hook:

git submodule init && git submodule sync && git submodule update 

Debe ejecuta esto en el servidor; así que probablemente sea mejor agregarlo a su secuencia de comandos hooks/post-receive. Es simple BASH o SH, por cierto.

+2

Gracias por su ayuda. He agregado esa línea a mi archivo de post-recepción, pero después de la carga y el pago inicial (que parece funcionar bien) recibo el mensaje de error "remoto: necesita ejecutar este comando desde el nivel superior del árbol de trabajo. " en relación con el material del submódulo. ¿Algunas ideas? Aclamaciones. –

Cuestiones relacionadas