ottenere l'hash del commit git future prima che il PR venga unito [duplicato]
Ho uno scenario specifico. Ho sollevato un PR. Ci sono più commit in questo PR.
Ora ho bisogno di ottenere l'hash del commit, che verrà generato dopo aver unito questo PR al master. È possibile ottenere l'hash del commit prima di unirlo?
supponiamo che un componente dell'applicazione sia: xyz
abbiamo creato un PR per quel ramo di funzionalità per padroneggiare jenkins -> inizia la compilazione PR -> distribuire l'applicazione su un nodo -> il plugin jacoco nell'applicazione crea un file exec
L'unione delle PR è avvenuta dalla build principale -> nessuna distribuzione per CC ora ...
Al termine della distribuzione, da un luogo separato viene attivato il lavoro di copertura CC -> che prenderà il file exec e invierà al sonar.
qui stavo cercando di renderlo come ... il nome del file exec avrà <Future_git_commit_hash> _xyz.exec
nel lavoro di copertura CC, verificherò questo commit_id .. e poi spingerò a sonar. (qui generalmente non abbiamo bisogno di commit_id, solo master possiamo fare il checkout e spingere al sonar) ...
il problema si verifica se: prima di spingere al sonar, viene nuovamente alzato un altro PR. e viene creato un nuovo file exec. quindi stavo pensando di avere l'ID di commit in modo da poter differenziare.
comunque se ottenere il commitid prima della fusione non è possibile .. è necessario controllare altri approcci.
Risposte
No, non è possibile.
Un commit contiene la descrizione di elementi come:
- l'autore del commit,
- il contenuto del commit (l'elenco dei file + directory che compongono questo commit),
- i genitori del commit
- il timestamp in cui viene creato il commit
L'hash di un commit è un hash di tutte queste informazioni. Poiché non è possibile indovinare in anticipo il timestamp in cui si verificherà il commit, non è possibile indovinare in anticipo quale sarà l'hash.
Immagino che tu voglia usare questo hash per alcune elaborazioni: il modo generico è fare in modo che la piattaforma che gestisce il PR (github? Azure devops?) Attivi uno script o una chiamata api dopo che il PR è stato accettato e unito.
No, questo è impossibile, poiché l'ora esatta verrà inclusa nell'hash del commit di unione.