comment git post-recevoir crochet get le nom de repo il fonctionne?

J'ai un crochet git post receive qui va triggersr une build sur mon système de build. J'ai besoin de créer une string de la forme "$ repo-name + $ branch" dans le script hook.

Je peux parsingr la twig, mais comment puis-je get le nom du repository à partir de git?

Merci!

Solutions Collecting From Web of "comment git post-recevoir crochet get le nom de repo il fonctionne?"

Le "nom du repository" n'est pas une idée bien définie dans git, je pense. Peut-être que ce qui serait le plus utile serait de renvoyer whatever.git dans le cas d'un référentiel nu ou dans le cas d'un référentiel avec un tree de travail. J'ai testé que ce morceau de shell Bourne traite correctement les deux cas depuis un hook 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 

Mise à jour: si vous voulez supprimer l'extension .git dans le cas du référentiel nu, vous pouvez append une ligne au premier cas pour le supprimer:

  REPOSITORY_BASENAME=$(basename "$PWD") REPOSITORY_BASENAME=${REPOSITORY_BASENAME%.git} 

Vous pouvez inspecter $ GIT_DIR, ou $ GIT_WORK_TREE et get le nom du repo à partir de là.

Vous pouvez faire git rev-parse --show-toplevel , qui vous donnera le path du directory de premier niveau, et retirer le nom de celui-ci (reponame.git est conventionnel pour les repos accessibles à distance).

$PWD pourrait aussi avoir la même information, mais je ne suis pas sûr.

Si vous utilisez Gitolite , la variable GL_REPO est disponible dans l'environnement post-receive par défaut.