El "nombre del repositorio" no es una idea bien definida en git, creo. Quizás lo que sería más útil es devolver whatever.git
en el caso de un repositorio vacío o whatever
en el caso de un repositorio con un árbol de trabajo. He probado que este poco de ofertas shell Bourne con ambos casos adecuadamente desde el interior de un gancho post-receive
:
if [ $(git rev-parse --is-bare-repository) = true ]
then
REPOSITORY_BASENAME=$(basename "$PWD")
else
REPOSITORY_BASENAME=$(basename $(readlink -nf "$PWD"/..))
fi
echo REPOSITORY_BASENAME is $REPOSITORY_BASENAME
Actualización: si desea eliminar la extensión .git
en el caso del repositorio desnudo, se podría añadir una línea con el primer caso a la tira que lo apaga:
REPOSITORY_BASENAME=$(basename "$PWD")
REPOSITORY_BASENAME=${REPOSITORY_BASENAME%.git}
Genial. Eso funciona. ¿Cómo puedo eliminar el ".git" de un repositorio desnudo? – Jacko
@Jacko: He actualizado la respuesta para sugerir una manera de hacerlo –
Aweseome !!!! Gracias. – Jacko