Je suis à la recherche d'un git solutions de rechange "svn info".
Aujourd'hui, j'ai ajouter un peu d'info que la SubVersion me donne avec le "svn info de la commande" à droite dans mon build, et qui est ensuite poussé dans un fichier source qui imprime ce cours de démarrage. De cette façon, je sais toujours où que construire venus et comment le récupérer à nouveau.
Si vous avez un "svn info" comme URL, Racine du Référentiel, le Référentiel de l'UUID et de la Révision, vous avez un bon lien entre ce qui est déployé et le buildsystem. Et si quelqu'un signale un bug, vous savez où le logiciel est venu, et depuis que l'information a été automatiquement inclus le risque d'erreur humaine est plus petit.
Maintenant, la question est, quelles informations dois-je besoin pour obtenir à partir de git afin que je puisse identifier d'où qu'construire vient? Et comment puis-je utiliser cette information pour revenir à exactement cette version?
(Peut-être que j'ai besoin d'ajouter des informations relatives à l'ordinateur de génération" ainsi depuis git est distribué.)
Merci Johan
Mise à jour: À l'aide de rev-parse était vraiment utile, j'ai quelque chose comme ceci:
cj@zap:~/git_test$ git rev-parse HEAD
72ce5f3e13c61f76fde5c58cefc85eed91b6f1f8
Et avec ce nombre magique il est ensuite possible de le faire
cj@zap:~/git_test$ git checkout 72ce5f3e13c61f76fde5c58cefc85eed91b6f1f8
Et je suis de retour là où j'étais.
Mise à jour: Je pense que si je prends des pièces à partir de scripts VonC fournis et de les mettre dans mon buildfile je vais obtenir le résultat que je cherchais.
Mise à jour: Une note sur "git décrire", vous avez besoin d'une véritable balise (tag-a) plus tôt dans vous de l'histoire de la branche pour faire ce travail, ou vous obtiendrez quelque chose comme ceci.
fatal: cannot describe '72ce5f3e13c61f76fde5c58cefc85eed91b6f1f8'
Le problème est également décrite ici http://www.rockstarprogrammer.org/post/2008/oct/16/git-tag-does-wrong-thing-default/
Mais s'il vous plaît noter que la caisse semblent fonctionner de toute façon, même toi qui a un message d'erreur.
git checkout 72ce5f3e13c61f76fde5c58cefc85eed91b6f1f8
La chose normale tu semble que vous créez quelque chose comme un "ver1.0" tag, et puis si vous continuez à travailler, vous obtenez quelque chose comme ceci:
cj@zap:~/git_test$ git describe
ver1.0-2-g4c7a057
cj@zap:~/git_test$ git tag -a ver2.0
cj@zap:~/git_test$ git describe
ver2.0
cj@zap:~/git_test$ git commit . -m "something..."
Created commit ac38a9d: something...
1 files changed, 1 insertions(+), 0 deletions(-)
cj@zap:~/git_test$ git describe
ver2.0-1-gac38a9d
Ainsi, lorsque vous utilisez décrire correctement, il fonctionne et peut produire une plus lisible par les résultats, et peut être vraiment utile.
Merci Johan