Come creo un lavoro cron che commette le mie modifiche al progetto in git su base settimanale

Sto usando git per fare una trascrizione storica delle modifiche apportte al mio progetto. Capisco che non sia l'uso ideale, ma è il model di utilizzo che ho scelto per vari motivi che non entrerò per motivi di brevità.

Come creare un lavoro cron che avrebbe commesso le modifiche al repository each giorno o settimana?

Sto utilizzando l'ultima versione di git su Ubuntu 10.10.

0 20 * * 0 /path_to_script 

Questo eseguirà il command specificato (sostituire /path_to_script' ) alle 20:00 each ora locale each domenica. La syntax per i lavori cron è abbastanza semplice e c'è uno strumento slick che ti aiuterà a creare senza ricordare le posizioni del codice.

In questo caso, il command deve essere uno script che esegue il commit per te. Penso che sarebbe più facile nel tuo caso scrivere uno script shell rapido per passare alla directory del clone e quindi eseguire il commit. Creare un file a ~/commit.sh e metterlo in esso (sostituzione /location/of/clone , ovviamente)

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

Quindi chmod +x ~/commit.sh per renderlo eseguibile e far funzionare il lavoro cron (riferendolo a un path completo, anziché usare ~ ).

Esegui crontab -e per modificare il tuo cronjob dell'utente e inserisci questa row:

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

Naturalmente dovrai impostare il tuo repo di GIT, incluso un repository remoto di lavoro, ma questo non è in field di questa domanda.