2011-09-07 25 views
6

Me pregunto si existe un límite superior para la cantidad de confirmaciones que un repositorio de git puede manejar.¿Existe un límite superior para la cantidad de confirmaciones que un repositorio de git puede manejar?

En un proyecto en solitario estoy trabajando en este momento, he estado codificando localmente, confirmando/implementando cambios en git, y luego realizando los cambios en mi servidor de desarrollo.

Trato a esto como una alternativa más fácil de trabajar a nivel local y cambios carga a través de FTP ... Por suerte/desgracia, es un flujo de trabajo tan fácil que a veces pasan por muchos editar/comprometerse Pull/ciclos/PUSH/navegador de actualización mientras codifica

Me pregunto si esto va a cambiar y morder en algún lugar en la línea. Si es probable que sea un problema, me pregunto cómo puedo evitar ese problema ... Parece que un rebase podría ser el camino a seguir, especialmente porque no tendré que preocuparme por ramas conflictivas, etc.

+6

git escalas a todo el kernel de Linux (para eso está hecho). Entonces, a menos que tengas cientos de MB de código con una década de commits, no te preocupes. –

Respuesta

11

Bueno, el "límite superior" probablemente sea el punto en el que ocurre una colisión SHA1, pero como los SHA tienen 40 dígitos hexadecimales de largo (16^40 ~ 1.4x10^48 posibilidades), es casi cero la posibilidad Ni siquiera es gracioso. Así que hay aproximadamente un cero por ciento de posibilidades de que tengas problemas durante al menos los próximos milenios.

Ejemplo hiperbólico (solo por diversión): 1 compromiso/minuto (simplemente cambiando un archivo -> tres nuevos SHA utilizados (archivo, confirmación, árbol) = 3 nuevos shas utilizados/minuto = ... = 1.6M shas utilizados/año = 1,6 mil millones shahs/milenios = 1x10^-37% utilizado cada milenios ... (a 1000 archivos/commmit/min, sigue siendo 3.6x10^-35%)

dicho esto, si desea limpiar su historial, aplastarlos con rebase es probablemente su mejor opción. Solo asegúrese de comprender las implicaciones si compartió el repositorio públicamente.

Puede que también quiera recolector de basura después de volver a basarlo liberar un poco de espacio (asegúrese de que la rebase funcionó bien primero, y es posible que necesite decirle que recopile todo o, de forma predeterminada, no recolectará nada más nuevo que dos semanas de antigüedad).

+0

pero todavía es posible Al igual que GUID y UUID –

3

Estoy bastante seguro de que no tiene que preocuparse en absoluto :)

Git usa el hash SHA-1 para verificar los archivos, la probabilidad de tener un conflicto de hash es cercana a cero. Entonces Diviertete !!

Personalmente hice alrededor de 30 compromisos diarios sin problemas.

Pero evite descargar archivos binarios :) es realmente pesado para lo que es.

3

Creo que no hay un límite fuerte para la cantidad de confirmaciones que puede manejar git, solo lo que usted puede digerir personalmente. Con proyectos más grandes y múltiples desarrolladores, verá más actividad de la que podría generar por su cuenta.

Puedes mantener una rama secundaria con la que te fusionas todas las semanas si así lo deseas, pero a git nunca le importará la cantidad de confirmaciones que tengas. Enloquece mientras puedas entender lo que estás haciendo. Siempre puedes diferir varias confirmaciones o utilizar herramientas como bisect para resolver problemas de historial.

Cuestiones relacionadas