git commit hash di un modulo caricabile esterna
-
20-09-2019 - |
Domanda
sto sviluppando un modulo del kernel di Linux al di fuori dell'albero dei sorgenti di Linux (in modo standard) e sto cercando di includere automaticamente il git commit hash del Driver nella stringa versione stampata durante carico del modulo. Il Makefile calcola l'hash git utilizzando il comando
DRV_TAG := $(shell git log -1 --pretty=format:"%h")
ma questo raccoglie l'hash git dell'albero di Linux e non il mio autista. Puoi dire git di guardare una particolare directory in cui l'esecuzione di comandi, o, in alternativa, è che c'è un modo migliore di affrontare questo problema?
Questo sta usando git 1.5.4.5 e Linux 2.6.28
Soluzione
Sì, è possibile utilizzare l'opzione --git-dir
che è necessario impostare la directory .git
appropriata. Inoltre, mentre è possibile utilizzare git log
, per quello che stai facendo rev-parse
(un comando idraulico) potrebbe essere più adatto.
git --git-dir=/driver/root/.git rev-parse HEAD
Altri suggerimenti
git
prende un --git-dir
un'opzione che consente di specificare quali repository di guardare. C'è un'opzione --work-tree
analogo se avete bisogno di guardare l'albero di lavoro troppo.
git --git-dir=/path/to/repo log -1 --pretty=format:"%h"
Guardate il pagina man git descrizioni di queste e altre opzioni.