Jak utworzyć zadanie CRON, które co tydzień będzie zatwierdzać zmiany projektu w GIT

8

Używam git do tworzenia historycznego zapisu zmian dokonanych w moim projekcie. Rozumiem, że nie jest to idealne użycie, ale jest to wzorzec użytkowania, który wybrałem z różnych powodów, dla których nie będę wchodził ze względu na zwięzłość.

Jak utworzyć zadanie CRON, które zatwierdzałoby zmiany w repozytorium każdego dnia lub tygodnia?

Używam najnowszej wersji git na Ubuntu 10.10.

Jason
źródło

Odpowiedzi:

9
0 20 * * 0 /path_to_script

Spowoduje to uruchomienie określonego polecenia (zastąpienie /path_to_script') o godzinie 20:00 czasu lokalnego w każdą niedzielę. Składnia zadań cron jest dość prosta, a istnieje sprytne narzędzie , które pomoże ci je utworzyć bez zapamiętywania pozycji kodu.

W takim przypadku polecenie powinno być skryptem uruchamiającym zatwierdzenie. Myślę, że w twoim przypadku najłatwiej byłoby napisać szybki skrypt powłoki, aby przejść do katalogu klonowania, a następnie uruchomić zatwierdzenie. Utwórz plik w ~/commit.shi umieść go w nim ( /location/of/cloneoczywiście zastępując )


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

Następnie, chmod +x ~/commit.shaby uczynić go wykonywalnym i uruchomić to zadanie cron (odwołując się do niego pełną ścieżką zamiast używania ~).

jcrawfordor
źródło
Dobra odpowiedź. Pamiętaj, że cronjob (oczywiście) jest wykonywany tylko wtedy, gdy komputer działa o określonej godzinie (np. Niedziela 20:00).
pableu
Jak mogę to zrobić, aby wypychać również na serwer?
Jason,
Ponadto, w jaki sposób mogę dodawać pliki, które dodałem
Jason
Po prostu dodaj git-push do skryptu, aby również wypychał na serwer. Możesz użyć opcji -a, aby git-commit automatycznie dodawał wszystkie pliki, które zostały zmodyfikowane lub usunięte.
jcrawfordor,
1
Czy nie chcesz dodać -apolecenia do zatwierdzenia, aby automatycznie dodawało wszystkie pliki, które są już śledzone do obszaru pomostowego?
Dror
2

Uruchom, crontab -eaby edytować cronjob użytkownika i wstaw ten wiersz:

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

Oczywiście będziesz musiał skonfigurować swoje repozytorium GIT, w tym działające zdalne repozytorium, ale to nie jest objęte tym pytaniem.

mówca
źródło