Cómo determinar cuándo se ha modificado un repository de git en sentido ascendente: para crear copys de security

¿Cómo determinar si se han realizado cambios desde que se creó el package de git previo sin crear un repository en funcionamiento, pasando por cada twig y registrando cada revisión de cabecera?

Una de las pocas caídas que estoy descubriendo con GIT es el respaldo adecuado para su uso en la empresa. La empresa difiere del desarrollo de código abierto en que siempre hay 1) un repository autorizado y 2) un sistema de respaldo que maneja grandes cantidades de datos. Por lo tanto, hay motivos para que 1) realice una copy de security con mucha frecuencia y 2) solo ejecute el process de copy de security cuando haya nuevos cambios. Mi problema es encontrar una solución para el n. ° 2.

Estoy usando git bundle para crear mis files, pero no encuentro una manera definitiva de determinar si se han confirmado nuevos cambios desde la copy de security anterior.

He estado tratando de encontrar una combinación de opciones para git rev-list para listr nuevos identificadores de commit desde el último package, pero no han tenido éxito. Una consulta sobre este tema revela un script de copy de security muy agradable escrito utilizando:

 git -C "${path}" rev-parse --short=10 HEAD 

para marcar el package con una identificación de confirmación. Esa solución describe de manera inadecuada una instantánea de un repository git ya que otras twigs pueden haberse actualizado dejando la revisión HEAD de un repository aguas arriba inalterado.

He analizado el uso de --max-age=<lastbackup epoch> , pero rápidamente descubrí que es posible que un desarrollador --max-age=<lastbackup epoch> cambios más antiguos después de que se haya ejecutado una copy de security, y dado que las dates de las confirmaciones no cambian, el resultado es que son más antiguos que la última date de copy de security y, por lo tanto, no se activa una copy de security.

El mejor enfoque que tengo hasta ahora es:

 git -C ${repo} rev-list -a --branches ${prev_commit}..HEAD 

que capta nuevas revisiones de otras twigs, pero continuará informando revisiones en otras twigs incluso después de que se haya realizado una nueva confirmación en HEAD.

Todavía no he empezado a search copys de security incrementales, pero ya puedo ver que para verificar una, necesitaría crear y administrar un repository en funcionamiento cuando prefiera simplemente mantener repositorys en nuestro server.

También notaré que no he encontrado una opción para git branch para eliminar el "*", así que me dará una list de las twigs para el scripting.

¿Qué están haciendo otras empresas para respaldar sus repositorys?

Puede usar git -C "${path}" rev-parse --short=10 --branches en git -C "${path}" rev-parse --short=10 --branches lugar. Incluso se muestra fatal: Needed a single revision al final de la salida, pero también puede mostrar la última confirmación para cada twig actualizada.

A medida que utiliza git para hacer control de versiones, solo necesita el server git o el server alojado de terceros (como github, bitbucket, etc.) para administrar la versión diferente. Es muy práctico y ahorra time, y no necesita preocuparse por cuál es la versión ahora. La ventaja es que los historiales de compromiso no pueden perderse, por lo que ya no es necesario archivarlos.