git pre-receive hook original directory

Tenemos un git centralizado, que todos los usuarios clonan y lo usamos para la synchronization entre los usuarios.

Actualmente, este directory se ha vuelto enorme y queremos eliminar su antiguo historial.

El problema es que eliminar el historial cambiará el hash de las confirmaciones guardadas. Quiero utilizar el gancho " pre-receive " para detectar que el usuario está tratando de empujar desde un nuevo clon y no uno anterior antes del cambio.

El command " git rev-list --max-parents=0 HEAD " debería darme el hash si el primer commit, el problema es que cuando se ejecuta pre-receive ya estamos en el repository simple, y necesito determinar también ¿Cuál es el punto de partida de los datos del usuario?

Entonces, ¿cómo puedo saber qué es el directory de usuarios?

No tienes información sobre el origen de un empujón.

Puede verificar el post de compromiso en su gancho, para verificar una política pnetworkingefinida que dice:

a partir de ahora, si desea ingresar a ese repository, debe include cierta información en el post de confirmación que permita al repository central identificar el primer compromiso de su repository indirecto.

Pero eso es algo que requiere comunicación con los usuarios para poder establecerlo.
No es algo que Git pueda hacer cumplir por sí mismo.

Gracias por todas las respuestas. He encontrado que la solución es simplemente usar un script de Perl como pre-receive y luego, si reviso $ {ENV {PWD}}, tengo el directory del usuario.