Sto pianificando il passaggio della mia azienda da CVS a Git, e alcuni ingegneri stanno sperando di utilizzare ancora stringhe di parole chiave CVS come $Id: $
. Ho letto tutto sull'implementazione di questo con l'ident impostazione .gitattributes
, e capisco perché non è auspicabile, anche se forse è possibile per alberi di sorgenti più piccoli. (La nostra fonte è enorme, quindi penso che sarebbe impossibile.)Un approccio diverso alle stringhe ident-style in Git?
I nostri ingegneri non si preoccupano particolarmente di avere l'hash SHA1 nel file. Vogliono solo sapere:
- la data dell'ultima modifica
- il nome del committer
- forse il messaggio
Lo trovano estremamente utile per vedere queste informazioni nelle intestazioni dei file commettere durante la navigazione del codice, e non posso discuterne.
Quello che voglio sapere è:
Esiste un modo per info-timbro tutti i file in scena al momento prima di git commit? In altre parole, per eseguire un comando perl, che sostituisce $Id: $
con un blocco di informazioni desiderate, sulle copie di lavoro dei file in corso di commit?
Ciò non richiederebbe alcuna azione .gitattributes
. Git avrebbe solo bisogno di sapere come unire due blocchi di informazioni di questo tipo, idealmente scegliendo quello successivo. Le informazioni stampate sarebbero solo un altro cambio di file nella versione appena creata.
Ho cercato di farlo nel gancio di pre-commit, ma sembra essere destinato in modo diverso - non per modificare i file, solo per controllarli. Ho ragione su questo?
E nessuno ha provato questo approccio? Mi sembra più semplice che cercare di filtrare tutti i file sorgente ogni volta che git cambia versione, che fa quello che sembra fare .gitattributes
.
Molto grazie per eventuali consigli/avvertenze/indicazioni.
Aye! Sono uno di loro, questi ingegneri, amico! – Roboprog