Como criar um trabalho cron que comprometerá minhas alterações de projeto no git semanalmente

8

Estou usando o git com o objetivo de fazer uma transcrição histórica das alterações feitas no meu projeto. Entendo que não é o uso ideal, mas é o padrão de uso que escolhi por várias razões, nas quais não entrarei por questões de brevidade.

Como criaria um trabalho cron que confirmaria as alterações no repositório todos os dias ou semanas?

Estou usando a versão mais recente do git no Ubuntu 10.10.

Jason
fonte

Respostas:

9
0 20 * * 0 /path_to_script

Isso executará o comando especificado (substituir /path_to_script') às 20:00, horário local, todos os domingos. A sintaxe dos trabalhos do cron é bastante simples, e há uma ferramenta inteligente que o ajudará a criá-los sem lembrar as posições do código.

Nesse caso, o comando deve ser um script que execute a confirmação para você. Eu acho que seria mais fácil no seu caso escrever um rápido shell script para mudar para o diretório clone e depois executar o commit. Crie um arquivo em ~/commit.she coloque-o (substituindo /location/of/clone, é claro)


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

Em seguida, chmod +x ~/commit.shtorne-o executável e faça com que o trabalho cron execute isso (referindo-se a ele pelo caminho completo, em vez de usar ~).

jcrawfordor
fonte
Boa resposta. Lembre-se de que o cronjob (obviamente) só é executado se o computador estiver executando no horário especificado (por exemplo, domingo às 20:00).
Pablu
como posso fazer o push para o servidor também?
Jason
Além disso, como faço para torná-lo adicionar arquivos que eu adicionei
Jason
Apenas adicione git-push ao script para que ele seja enviado também ao servidor. Você pode usar a opção -a para git-commit para adicionar automaticamente todos os arquivos que foram modificados ou excluídos.
Jcrawfordor #
11
Você não deseja adicionar um -aao comando commit, para que ele adicione automaticamente todos os arquivos que já estão rastreados na área de preparação?
Dror
2

Execute crontab -epara editar o cronjob do usuário e insira esta linha:

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

É claro que você precisará configurar seu repositório GIT, incluindo um repositório remoto em funcionamento, mas isso não está no escopo desta pergunta.

speakman
fonte