¿Cómo creo un trabajo cron que confirme los cambios de mi proyecto en git semanalmente?

8

Estoy usando git con el propósito de hacer una transcripción histórica de los cambios realizados en mi proyecto. Entiendo que no es el uso ideal, pero es el patrón de uso que he elegido por varias razones que no voy a abordar por razones de brevedad.

¿Cómo crearía un trabajo cron que confirmaría los cambios en el repositorio cada día o semana?

Estoy usando la última versión de git en Ubuntu 10.10.

Jason
fuente

Respuestas:

9
0 20 * * 0 /path_to_script

Eso ejecutará el comando especificado (reemplazar /path_to_script') a las 20:00 hora local todos los domingos. La sintaxis para los trabajos cron es bastante simple, y hay una herramienta ingeniosa que lo ayudará a crearlos sin recordar las posiciones del código.

En este caso, el comando debe ser un script que ejecute el commit por usted. Creo que sería más fácil en su caso escribir un script de shell rápido para cambiar al directorio de clonación y luego ejecutar el commit. Cree un archivo en ~/commit.shy póngalo en él (reemplazando /location/of/clone, por supuesto)


#!/bin/sh
cd /location/of/clone
git-commit -m "commit message, to avoid being prompted interactively"

Luego, chmod +x ~/commit.shpara que sea ejecutable, y haga que el trabajo cron lo ejecute (refiriéndose a él por su ruta completa, en lugar de usarlo ~).

jcrawfordor
fuente
Buena respuesta. Tenga en cuenta que el cronjob (obviamente) solo se ejecuta si su computadora está funcionando a la hora especificada (por ejemplo, el domingo a las 20:00).
pableu
¿Cómo puedo hacer que también empuje al servidor?
Jason
Además, ¿cómo hago para agregar archivos que he agregado
Jason
Simplemente agregue git-push al script para que también se envíe al servidor. Puede usar la opción -a para git-commit para que agregue automáticamente todos los archivos que se han modificado o eliminado.
jcrawfordor 05 de
1
¿No desea agregar un -acomando de confirmación para que agregue automáticamente todos los archivos que ya se rastrearon en el área de preparación?
Dror
2

Ejecute crontab -epara editar su cronjob de usuario e inserte esta línea:

0 20 * * 0 (cd /path/to/myproject && git add . && git commit -m "Automatic Commit" && git push)

Por supuesto, tendrá que configurar su repositorio GIT, incluido un repositorio remoto que funcione, pero eso no está dentro del alcance de esta pregunta.

hablar
fuente