Il est impossible d'écrire le commit courant de hachage: si vous parvenez à le pré-calcul de la future commettre hachage - il va changer dès que vous modifiez un fichier.
Cependant, il y a trois options:
- Utiliser un script pour incrémenter 'commit' id et inclure quelque part. Laid
- .gitignore le fichier que vous allez stocker le code de hachage dans. Pas très pratique
- En
pre-commit
, le magasin de la précédente livraison de hachage :) Vous n'avez pas à modifier/insérer, s'engage dans 99,99% des cas, donc, cela fonctionnera. Dans le pire des cas vous pouvez toujours identifier la source de la révision.
Je suis en train de travailler sur un script hook, le posterai ici quand c'est fait", mais encore plus tôt que Duke Nukem Forever est sorti :))
UPD: code .git/hooks/pre-commit
:
#!/usr/bin/env bash
set -e
#=== 'prev-commit' solution by o_O Tync
#commit_hash=$(git rev-parse --verify HEAD)
commit=$(git log -1 --pretty="%H%n%ci") # hash \n date
commit_hash=$(echo "$commit" | head -1)
commit_date=$(echo "$commit" | head -2 | tail -1) # 2010-12-28 05:16:23 +0300
branch_name=$(git symbolic-ref -q HEAD) # http://stackoverflow.com/questions/1593051/#1593487
branch_name=${branch_name##refs/heads/}
branch_name=${branch_name:-HEAD} # 'HEAD' indicates detached HEAD situation
# Write it
echo -e "prev_commit='$commit_hash'\ndate='$commit_date'\nbranch='$branch'\n" > gitcommit.py
Maintenant, la seule chose dont nous avons besoin est un outil qui convertit prev_commit,branch
couple à un réel commettre hachage :)
Je ne sais pas si cette approche peut dire la fusion s'engage à part. Check it out bientôt