2012-02-28 12 views
5

He estado usando posterior a recibir secuencias de comandos en mis repositorios git con los siguientes comandos para obtenerlos todos los archivos en el repositorio:Git post-receive para pagar solo los archivos que se han modificado/agregado en el push?

#!/bin/sh 
GIT_WORK_TREE=/var/www/www.example.org git checkout -f 

que estoy queriendo hacer algo similar, pero sólo la comprobación de los archivos que han sido modificado o agregado en el push. Una vez que los archivos se hayan extraído, la secuencia de comandos posterior a la recepción ejecutará algunos otros comandos en estos archivos y eliminará los archivos al final para que el directorio esté vacío.

¿Esto es posible?

Respuesta

5

puede utilizar git diff para darle una lista de archivos

git diff --name-only from..to 

en un gancho post-receive que va a ser Creo

git diff --name-only $1..$2 

como este gancho recibe oldrev, newrev y ref en la norma entrada

+0

No necesito una lista de archivos para sacar los nuevos archivos a un directorio. Probablemente debería mencionar que estoy haciendo esto usando un repositorio simple alojado en un servidor. – startupsmith

+0

Una vez que sepa qué archivos son relevantes [es posible volcarlos donde desee] (https://github.com/AD7six/git-hooks/blob/develop/utils.php#L101). Pero primero debe saber qué archivos se van a utilizar y no se realizará ninguna extracción. – AD7six

+0

OK, ¿puedo pasar el resultado de git diff a tu formulario de función copyFiles php dentro del script hook posterior a la recepción? – startupsmith

Cuestiones relacionadas