2 votes

Git Post Receive Hook : mise à jour de la branche de travail actuelle vers le serveur de transit (staging)

Donc, j'ai une configuration de serveur de transit, et ce que je voudrais faire, c'est quand quelqu'un pousse vers une mise à jour de la branche non-master ce que le répertoire du serveur de transit. Mon hook post-receive actuel ressemble à ceci :

echo "post hook is on the run!"

while read oldrev newrev ref
do
    echo "$ref"
done

unset $(git rev-parse --local-env-vars)
cd ../staging/bikereport
git fetch
git pull origin $ref

echo "Post receive finsihed"

Cependant, je ne vois pas les changements que je voudrais sur le serveur, et le serveur distant renvoie "Already up-to-date", ce qui me fait penser qu'il tire de Master ou quelque chose comme ça ?

Ce n'est pas une solution élégante, mais nous sommes un très une petite équipe travaillant sur un seul projet. La solution idéale serait d'enregistrer chaque branche dans un nouveau répertoire du serveur de préparation et de ne mettre à jour que ce répertoire à chaque poussée.

2voto

VonC Points 414372
cd ../staging/bikereport
git fetch

Attention : votre répertoire git est no votre staging/bikereport repo.
Il est toujours celui où le crochet fonctionne.

Vous devez définir GIT_DIR à /full/path/ofstaging/bikereport/.git (et pour être sûr, définissez GIT_WORK_TREE à /full/path/ofstaging/bikereport ) afin que les commandes exécutées à partir de que pour fonctionner.
Et vous devez désactiver GIT_INDEX_FILE !

Voir " Pourquoi le réglage de GIT_WORK_TREE ne fonctionne-t-il pas dans un hook post-commit ? "pour plus de détails.

Votre crochet devrait commencer par :

#!/bin/sh
 unset GIT_INDEX_FILE
 export GIT_WORK_TREE=/full/path/ofstaging/bikereport/
 export GIT_DIR=/full/path/ofstaging/bikereport/.git/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X