0
votes

Où nous pourrions avoir besoin de crochets de pré-validation et de pré-poussée ensemble pour peluche notre code

En supposant que nous ayons du linter dans notre projet. J'ai un hook pré-commit qui lint mon projet et si lint passe sans erreur, il sera validé. Je souhaite configurer un crochet pré-poussé pour pelucher mon projet lors de la poussée. Mais je ne vois pas l'intérêt de le faire en push puisque le code sera déjà linté lors du commit. Alors, quelqu'un peut-il m'indiquer un scénario où une charpie pré-push serait nécessaire avec déjà un lien pré-commit?


0 commentaires

3 Réponses :


2
votes

Si vous utilisez un hook pre-commit , vous n'avez pas besoin d'un hook pre-push également. Les deux couvriront le même ensemble de commits en utilisation normale. Les deux peuvent également être contournés avec --no-verify , donc ni l'un ni l'autre n'est approprié comme contrôle d'accès. Un hook pre-commit peut néanmoins être un outil utile pour les développeurs qui souhaitent en utiliser un.

Si vous souhaitez appliquer le linting sur votre base de code, vous devez utiliser une vérification dans votre système CI, que les utilisateurs ne peuvent pas modifier. Cela laisse le hook pre-commit pour les utilisateurs qui le trouvent utile, et les utilisateurs plus avancés, qui peuvent créer de nombreux commits jetables qu'ils ne veulent pas pelucher, peuvent l'ignorer et compter sur CI.


0 commentaires

2
votes

S'il s'agit du même ensemble de vérifications, je conviens qu'il n'y a aucune raison d'avoir à la fois pre-commit et pre-push

cependant, s'il s'agit de vérifications différentes (ce que je suggère généralement de ne conserver que les vérifications les plus rapides dans pre-commit et les vérifications plus lentes dans pre-push ), alors il y a une raison pour utiliser les deux crochets.

Un exemple pourrait être quelque chose de rapide comme une vérification de syntaxe dans pre-commit et une exécution de tests unitaires dans pre-push


0 commentaires

0
votes

Disons que vous lintrez votre code sur les deux hooks. En supposant que votre branche utilise le crochet pré-comit et qu'elle soit peluchée. Et il y a une autre branche qui n'est pas peluchée. Ensuite, vous rebasez votre branche de la branche illimitée et avez voulu pousser. À ce stade, le crochet de pré-poussée vous empêchera de pousser à moins que vous ne résolviez ces problèmes de peluches. Il en va de même pour la fusion d'une branche non imprimée avec votre branche et tente de pousser.


0 commentaires