Error al recuperar el nombre de la twig en el gancho de actualización de git

Según este enlace, un gancho de actualización debe pasar 3 arguments. Usar el código en la primera respuesta de ese enlace debería permitirle determinar el nombre de la twig. Sin embargo, no puedo reproducir esto y no puedo determinar el nombre de la sucursal.

Puedo confirmar que mi flujo de trabajo es funcional. Cada vez que presiono para un repository, se ejecuta un file llamado "actualización" que es un gancho de actualización. Puedo confirmar que escribirá text en un file y lo ejecutará.

Este es un código que funciona para mí. Solicita el nombre del repository y lo escribe con éxito en ~ / name:

#!/bin/bash if [ $(git rev-parse --is-bare-repository) = true ] then REPOSITORY_BASENAME=$(basename "$PWD") else REPOSITORY_BASENAME=$(basename $(readlink -nf "$PWD"/..)) fi echo $REPOSITORY_BASENAME > ~/name 

Este es el código que no funciona para mí. No puede escribir el valor de refname y variables de twig, etc. Y mientras estoy presionando para dominar (debería cumplir la condición 'if', también he intentado el código sin el bucle if:

 #!/bin/bash while read oldrev newrev refname do branch=$(git rev-parse --symbolic --abbrev-ref $refname) if [ "master" == "$branch" ]; then echo $branch > ~/branch echo $refname > ~/refname fi done 

Todo lo que estoy buscando es una forma de referencer el nombre de la twig en un gancho de actualización.

La documentation (man githooks) dice:

  The hook executes once for each ref to be updated, and takes three parameters: · the name of the ref being updated, · the old object name stonetworking in the ref, · and the new object name to be stonetworking in the ref. 

Estás leyendo en stdin, quieres ver los parameters ($ 1, $ 2, $ 3).

El enlace que mencionas habla sobre gancho post-receive , que se comporta de manera diferente.