2012-11-26 8 views
6

Qualcuno può spiegare perché git descrive utilizza un conteggio come "il numero di commit che verrebbero visualizzati da git log tag..input" [da git-describe(1)]?Calcolo conteggio commit in git-describe

Concettualmente ho pensato che git-descriva usato il numero di commit dal tag come un contatore monotonicamente crescente. Tuttavia, sembra che in realtà utilizzi il numero di commit raggiungibile da "input" meno quelli raggiungibili da "tag". Perché?

In questo caso particolare, ho creato un tag di rilascio ("1.0.0") e quindi una versione patch ("1.0.1") su un ramo ("1.0"). Mi sono unito [vedi http://www.kernel.org/pub/software/scm/git/docs/gitworkflows.html] il ramo cambia in master. Tuttavia, quando descrivo un commit più recente su master, il conteggio corrisponde all'output di git log tag..input. Mi aspettavo che corrispondesse a git log --ancestry-path tag..input.

Grazie.

+1

Credo che 'git Descrivi --first-parent' dovrebbe fare quello che vuoi. – ctn

risposta

1

git describe è un modo per comunicare lo HEAD in modo significativo. È una semplice risposta alla domanda "Dove sono nella storia?" o "Quale versione del codice è questa?"

Quindi, quando si esegue il comando, inizia dove si è attualmente, se questa è la punta di master, qualche altro tag o solo un commit casuale. Da questo punto di partenza conta all'indietro attraverso i commit fino a quando non trova un tag. Da lì stamperà il tag, il numero di commit contati, quindi il numero di commit breve.