2012-05-16 12 views
14

Devo creare diversi tag ogni giorno in un repository Git.
Quando ho molti tag, renderà il mio repository lento o causerà altri problemi?Troppi tag causeranno problemi in Git?

Nota: sto usando GitHub, ma per favore rispondi genericamente.

+0

AFAIK un tag è solo un puntatore a un commit. Se un servizio come github deve eseguire un'ulteriore elaborazione per ogni tag, potrebbe essere più lento l'aggiornamento sul sito Web, ma git stesso non dovrebbe rallentare, tranne forse 'git log', se hai qualche milione di tag. –

risposta

6

(Annotated) tags non farà Git lenta, solo più difficile da usare in quanto si avrà un tempo più difficile trovare i tag rilevanti tra tutti quelli intermedi.

Nel peggiore dei casi, può rendere lenta l'interfaccia web (come GitHub) se deve visualizzare migliaia di tag.

Forse tutti quei tag non hanno bisogno di essere spinto, nel qual caso si potrebbe considerare la possibilità di locali intermedi "Lightweight" tags.

+0

I tag leggeri sono quelli di default, giusto? –

+0

@VonC Devo spingerli, saranno utilizzati in seguito da altri utenti. Mi stavo chiedendo se avrei avuto bisogno di pulire quelli più grandi. –

+0

@ ML-- puoi pulirli, dapprima localmente poi sul telecomando: 'git tag -d 12.15',' git push origin: refs/tags/12.15'. Tuttavia, i tuoi colleghi potrebbero avere più difficoltà a sincronizzarsi: http://stackoverflow.com/questions/1841341/remove-local-tags-that-are-no-longer-on-the-remote-repository – VonC

-1

Se si utilizza windows/cmd, si otterrà questo errore "fatale: troppi parametri" se si utilizzano virgolette singole nel comando. Per esempio. git tag -a ann_v1.1 -m 'Annotated tag v1.1'. Per risolvere il problema, utilizzare invece le virgolette doppie. Questa singola citazione può causare problemi anche in altri luoghi. Per esempio. git commit -m 'dangerous stuff' causerà l'errore - errore: pathspec 'pericoloso' non corrisponde a nessun file noto per git.

2

Utilizzando Git 2.8.1 su Windows, ho sperimentato la lentezza minore da alcuni comandi quando ci sono un sacco di tag (15000 o giù di lì), tra cui:

  • git log (con --decorate)

  • git status

  • Visualizzazione della cronologia in Visual Studio.

  • Utilizzare il prompt dei comandi quando la testina è scollegata (poiché Git Bash fa bella mostra la revisione corrente accanto alla directory corrente).

Questi comandi esaminano tutti i tag per decorare le revisioni mostrate. Ognuno di questi comandi richiede circa 1-2 secondi in più rispetto ai tag.