2009-08-31 6 views
0

Je développe un module noyau Linux en dehors de l'arborescence source Linux (de façon standard) et j'essaie d'inclure automatiquement le hash git commit du driver dans la chaîne de version imprimé pendant la charge du module. Le Makefile calcule le hachage git en utilisant la commandegit commit hash d'un module chargeable externe

DRV_TAG := $(shell git log -1 --pretty=format:"%h") 

mais cela prend le hachage git de l'arbre Linux et pas mon chauffeur. Pouvez-vous dire à git de regarder un répertoire particulier lors de l'exécution des commandes, ou bien, est-ce qu'il y a une meilleure façon d'aborder ce problème?

Ce utilise 1.5.4.5 git et Linux 2.6.28

Répondre

1

Oui, vous pouvez utiliser l'option --git-dir que vous devez définir le répertoire .git approprié. En outre, alors que vous pouvez utiliser git log, pour ce que vous faites rev-parse (une commande de plomberie) pourrait être plus approprié.

git --git-dir=/driver/root/.git rev-parse HEAD 
1

git prend une option --git-dir qui vous permet de spécifier quel référentiel de regarder dans. Il y a une option --work-tree analogue si vous avez besoin de regarder l'arbre de travail aussi.

git --git-dir=/path/to/repo log -1 --pretty=format:"%h" 

Regardez le git man page pour obtenir une description de ces et d'autres options.