Git Commit Hash de um módulo carregável externo
-
20-09-2019 - |
Pergunta
Estou desenvolvendo um módulo de kernel Linux fora da árvore de origem Linux (da maneira padrão) e estou tentando incluir automaticamente o hash commit git do condutor na string de versão impressa durante a carga do módulo. O Makefile calcula o hash git usando o comando
DRV_TAG := $(shell git log -1 --pretty=format:"%h")
Mas isso pega o hash git da árvore Linux e não meu motorista. Você pode dizer ao Git para analisar um diretório específico ao executar comandos ou, alternativamente, existe uma maneira melhor de abordar esse problema?
Isso está usando o Git 1.5.4.5 e o Linux 2.6.28
Solução
Sim, você pode usar o --git-dir
opção que você deve definir para o apropriado .git
diretório. Além disso, enquanto você pode usar git log
, pelo que você está fazendo rev-parse
(Um comando de encanamento) pode ser mais adequado.
git --git-dir=/driver/root/.git rev-parse HEAD
Outras dicas
git
toma uma opção --git-dir
o que permite especificar qual repositório para olhar. Há um análogo --work-tree
opção se você precisar olhar para a árvore de trabalho também.
git --git-dir=/path/to/repo log -1 --pretty=format:"%h"
Olhe para a Página do homem git Para descrições dessas e de outras opções.