2011-01-05 12 views
11

¿Hay un número máximo de paquetes de git, o puede tener todos los que desee?¿Hay un número máximo de guarderías de git?

Soy consciente de que

git stash list 

no enumera tantos resultados como

git stash list --date=local 

¿Pero Linus Torvalds piensan que cualquier persona con más de x stashes es un idiota que merece perder los viejos stashes?

+5

Um, ¿qué tiene que ver la opinión de Linus Torvalds con nada? –

+1

Si tiene una gran cantidad de escondites, quizás algunos de ellos se denominen sucursales. –

+0

¿Estás seguro de que no estás viendo el comportamiento predeterminado de git de agregar $ PAGER a algo con suficiente salida para desplazar la pantalla? –

Respuesta

19

No hay un límite estricto para los depósitos. Las estrategias se implementan simplemente utilizando el reflog de una referencia especialmente llamada llamada stash.

+0

¿Esto significa que es probable que se eliminen si haces 'git prune' o' git gc'? –

+0

Ya lo sé, no estoy seguro. En general, el reflog tiene una duración de 90 días (o 30 días para confirmaciones inalcanzables). Esperaría que git no aplique este límite al alijo, pero no puedo estar seguro. –

+3

Acabo de comprobar la fuente, parece que maneja el alijo especialmente. –

8

No, no hay límite. De hecho, Git maneja un gran número de alijos bastante gracia:

$ 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 

no he probado más, pero me gustaría asuma que todavía va a trabajar lo mismo por 100.000 o un millón. Entonces sí, la cantidad de escondites realmente es ilimitada.

Cuestiones relacionadas