Comment créer un travail cron qui va valider mes modifications de projet dans git sur une base hebdomadaire

8

J'utilise git dans le but de faire une transcription historique des modifications apportées à mon projet. Je comprends que ce n'est pas l'utilisation idéale, mais c'est le modèle d'utilisation que j'ai choisi pour diverses raisons que je n'entrerai pas dans un souci de brièveté.

Comment créer un travail cron qui validerait les modifications dans le référentiel chaque jour ou chaque semaine?

J'utilise la dernière version de git sur Ubuntu 10.10.

Jason
la source

Réponses:

9
0 20 * * 0 /path_to_script

Cela exécutera la commande spécifiée (remplacer /path_to_script') à 20h00 heure locale tous les dimanches. La syntaxe des tâches cron est assez simple, et il existe un outil lisse qui vous aidera à les créer sans vous souvenir des positions de code.

Dans ce cas, la commande doit être un script qui exécute la validation pour vous. Je pense qu'il serait plus simple dans votre cas d'écrire un script shell rapide pour passer dans le répertoire clone puis exécuter le commit. Créez un fichier sur ~/commit.shet mettez-le dedans (en remplaçant /location/of/clone, bien sûr)


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

Ensuite, chmod +x ~/commit.shpour le rendre exécutable et faire exécuter le travail cron (en y faisant référence par son chemin complet, plutôt qu'en utilisant ~).

jcrawfordor
la source
Bonne réponse. Gardez à l'esprit que le cronjob (évidemment) n'est exécuté que si votre ordinateur fonctionne à l'heure spécifiée (par exemple dimanche 20h00).
pableu
Comment puis-je également faire en sorte que le serveur soit poussé vers le serveur?
Jason
Aussi, comment puis-je lui faire ajouter des fichiers que j'ai ajoutés
Jason
Ajoutez simplement git-push au script pour qu'il soit également envoyé au serveur. Vous pouvez utiliser l'option -a pour git-commit afin qu'il ajoute automatiquement tous les fichiers qui ont été modifiés ou supprimés.
jcrawfordor
1
Ne voulez-vous pas ajouter un -aà la commande commit, donc il ajoutera automatiquement tous les fichiers qui sont déjà suivis dans la zone de transfert?
Dror
2

Exécutez crontab -epour modifier votre cronjob utilisateur et insérez cette ligne:

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

Bien sûr, vous devrez configurer votre référentiel GIT, y compris un référentiel distant fonctionnel, mais ce n'est pas dans le cadre de cette question.

parler
la source