Estoy usando ubuntu 12.04 TLS en el que tengo un repositorio git en un directorio específico, lo que estoy intentando es realizar la copia de seguridad programada del repositorio y colocarla en un directorio específico que pueda enviarse por correo.
En el proceso, aprendí a encontrar todo el repositorio de git en un directorio específico buscando en Google y encontré el siguiente comando
find /home/mysys/D/ -name .git -type d -prune
pero contiene el camino como
/home/mysys/D/testing/.git
que enumera todos los archivos git asociados en el directorio y está funcionando, pero lo que necesito para ejecutar git bundle create nombredirectorio.bundle --todo para hacerlo más automatizado en el que probé lo siguiente
find /home/mysys/D/ -name .git -type d -prune -exec git bundle create test.bundle --all {} \;
El script bash anterior regresa
fatal: Invalid gitfile format: .git
Cómo hacer esto para que funcione de manera robusta.
Gracias de antemano.
Respuesta1
Tu quieres serenel directorio controlado por git cuando git bundle
se ejecuta, así que usefind ... -execdir ... \;
find /home/mysys/D/ -type d -name .git -prune -execdir git bundle create backup.bundle --all \;
Eso creará un paquete de copia de seguridad en todos estos directorios. Desde allí puedes moverlos o procesarlos con más secuencias de comandos. Pero el lado de la agrupación ya se maneja.