2011-01-29 1 views
3

Je garde un fichier texte de mon journal git dans mon répertoire de travail, et j'ai un script qui le met à jour après un commit. C'est bien, mais l'effet de ceci est que la version qui est dans le repo est toujours un commit derrière.Est-ce qu'un hook git pre-commit peut ajouter un fichier au repo?

Est-il possible d'écrire un hook de pré-validation qui appelle un script et ajoute un fichier au repo, sauvegardant ainsi la version texte du journal avec les informations de livraison actuelles?

Je ne connais pas très bien les hameçons et je ne sais pas du tout comment cela fonctionnerait, même si c'est possible. J'apprécie l'aide!

Répondre

3

Réponse courte: non. Le journal contient le SHA1 de la validation, qui dépend du contenu de la validation. Si vous modifiez le journal, vous modifiez le commit et celui-ci sera toujours invalide.

Je me demande pourquoi vous essayez de le faire, vraiment. Dans le référentiel, git log est aussi bon que cat saved-git-log. Si vous souhaitez utiliser ce changelog, pour les versions publiées, créez simplement dans le cadre de votre processus de construction/deploy, par exemple quelque chose comme ceci:

tarname=my-project-$(git describe HEAD).tar 
git log > changelog.txt 
git archive --format=tar HEAD > $tarname 
tar -Af $tarname changelot.txt 
gzip $tarname 
+1

Ok, c'est bien. La raison pour laquelle je veux le faire est que j'essaie d'intégrer mon journal de validation dans une application Rails déployée sur Heroku, ce qui signifie que je ne peux que transmettre des fichiers au serveur en les ajoutant au dépôt git et en les poussant vers Heroku. Une fois que l'application est à heroku, cependant, elle ne peut plus faire aucun type d'appel à son propre dépôt, ce qui est extrêmement boiteux. Merci pour la suggestion sur une alternative bien! – Andrew

+1

@Andrew: L'autre grande alternative est de faire ce que vous avez dit, étant un commit derrière - sauf que le dernier commit est juste une modification du changelog. Si vous faites cela une seule fois par version, au lieu d'une fois par commit, ce n'est vraiment pas si mal. – Cascabel

1

Je viens de tirer les journaux complets à partir d'un flux RSS sur Bitbucket/Github. Il semble que ce serait le moyen le plus simple de réaliser ce que vous demandez, surtout en utilisant Heroku.

Questions connexes