2011-01-05 22 views
11

C'è un numero massimo di casse git o puoi averne quante ne vuoi?Esiste un numero massimo di ceste git?

Sono consapevole che

git stash list 

non elenca come molti risultati come

git stash list --date=local 

Ma questo Linus Torvalds pensa che chiunque abbia più di x stashes è un idiota che merita perdere le vecchie casse?

+5

Um, cosa c'entra l'opinione di Linus Torvalds? –

+1

Se si dispone di un numero elevato di ripari, alcuni potrebbero invece essere denominati rami. –

+0

Sei sicuro di non vedere solo il comportamento predefinito di git di aggiungere $ PAGER a qualcosa con abbastanza output per far scorrere lo schermo? –

risposta

19

Non esiste un limite rigido per le finestre. Gli stash sono semplicemente implementati usando il reflog di un reflet chiamato apposito chiamato stash.

+0

Ciò significa che potrebbero essere cancellati se si esegue 'git prune' o' git gc'? –

+0

Sai, non sono sicuro. In generale, il reflog dura 90 giorni (o 30 giorni per i commit irraggiungibili). Mi aspetterei che git non applichi questo limite alla scorta, ma non posso esserne certo. –

+3

Ho appena controllato la fonte, sembra infatti che gestisca appositamente lo stash. –

8

No, non c'è limite. In realtà, Git gestisce un gran numero di nascondigli molto garbo:

$ du -sh .git; \ 
> for i in {1..10000}; do echo $i > README; git stash -q; done; \ 
> git gc -q; du -sh .git; time git stash list | wc -l 
8.5M  .git 
13M  .git  # space efficient 
10000    # all there 
real  0m0.212s # listing 10,000 entries 
$ echo foo > README; time git stash -q; time git stash pop -q 
real  0m0.159s # save still fast 
real  0m0.146s # pop still fast 

non ho la prova di più, ma mi piacerebbe pensare che sarà ancora lavorare lo stesso per 100.000 o un milione. Quindi sì, il numero di arresti è davvero illimitato.

Problemi correlati