Bagaimana cara membuat pekerjaan cron yang akan melakukan perubahan proyek saya untuk git setiap minggu

8

Saya menggunakan git untuk keperluan membuat transkrip historis dari perubahan yang dibuat untuk proyek saya. Saya mengerti ini bukan penggunaan yang ideal tetapi pola penggunaan yang saya pilih karena berbagai alasan yang saya tidak akan masuki untuk singkatnya.

Bagaimana saya membuat pekerjaan cron yang akan melakukan perubahan pada repositori setiap hari atau minggu?

Saya menggunakan git versi terbaru di Ubuntu 10.10.

Jason
sumber

Jawaban:

9
0 20 * * 0 /path_to_script

Itu akan menjalankan perintah yang ditentukan (ganti /path_to_script') pada pukul 20:00 waktu setempat setiap hari Minggu. Sintaks untuk pekerjaan cron cukup sederhana, dan ada alat yang licin yang akan membantu Anda membuatnya tanpa mengingat posisi kode.

Dalam hal ini, perintah harus berupa skrip yang menjalankan komit untuk Anda. Saya pikir akan lebih mudah dalam kasus Anda untuk menulis skrip shell cepat untuk mengubah ke direktori klon dan kemudian menjalankan komit. Buat file di ~/commit.shdan masukkan ini ke dalamnya (ganti /location/of/clone, tentu saja)


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

Kemudian chmod +x ~/commit.shuntuk membuatnya dieksekusi, dan minta cron job menjalankannya (merujuknya dengan path lengkapnya, daripada menggunakan ~).

jcrawfordor
sumber
Jawaban yang bagus. Perlu diingat bahwa cronjob (jelas) hanya dijalankan jika komputer Anda berjalan pada waktu yang ditentukan (mis. Minggu 20:00).
pableu
bagaimana saya bisa membuatnya melakukan push ke server juga?
Jason
Juga, bagaimana saya membuatnya menambahkan file yang telah saya tambahkan
Jason
Cukup tambahkan git-push ke skrip untuk mendorongnya ke server juga. Anda dapat menggunakan opsi -a untuk git-commit agar secara otomatis menambahkan semua file yang telah dimodifikasi atau dihapus.
jcrawfordor
1
Tidakkah Anda ingin menambahkan -aperintah komit, sehingga akan menambahkan secara otomatis semua file yang sudah dilacak ke area pementasan?
Dror
2

Jalankan crontab -euntuk mengedit cronjob pengguna Anda, dan masukkan baris ini:

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

Tentu saja Anda harus mengatur repo GIT Anda termasuk repositori jarak jauh yang berfungsi, tetapi itu tidak dalam cakupan pertanyaan ini.

pembicara
sumber