git auto commit and push using crontab.org

index | about | archive | charlas | docs | links

dot | git | img | plt | tty | uml

git-auto-commit-and-push-using-crontab.png

git.sh

Desde 2011 que tengo mis bash scripts genéricos versionados en un repo git privado en el directorio ~/bin y cada tanto algunos de ellos maduran lo suficiente y pasan a formar parte de algún nuevo repo público en Codeberg 1, GitLab 2 o GitHub 3.

Pero mientras estos scripts están en ~/bin me despreocupo de realizar commits, es decir se autoversionan usando el crontab y un script llamado git.sh 4.

Gracias al plugin vim-gutter 5 puedo diferenciar rápidamente que líneas cambié hace 5 minutos, lo cual ayuda bastante cuando estoy refactorizando algo sobre la marcha.

crontab

Aadapto git.sh a las necesidades puntuales de cada repo y crontab se ocupa de ejecutar git.sh cada 5 minutos y listo! si sucede algo con mi notebook, a lo sumo perdí 5 minutos y mantengo un historial versionado de todos los archivos imporantes, entre ellos estan logs, configs, passwords, journal, calendar y por supuesto mis preciados scripts :)

*/5 * * * * $HOME/log/git.sh
*/5 * * * * $HOME/bin/git.sh
*/5 * * * * $HOME/config/git.sh
*/5 * * * * $HOME/.password-store/git.sh
*/5 * * * * $HOME/.jrnl/git.sh
*/5 * * * * $HOME/git/osiux/wip/git.sh
*/5 * * * * $HOME/env/cal/git.sh

bin-bash-utils

Si no recuerdo mal, la idea de autoversionar la obtuve del excelente y recomendado Organize Your Life In Plain Text! 6 cuando usaba a diario org-mode 7.

Viendo que pasaron 12 años desde que comencé a versionar ~/bin, aprovecho hoy para iniciar la versión pública de ~/bin en el repo bin-bash-utils 8 con esos scripts genéricos que todavían no tuvieron suerte para que los publique agrupados en algún otro repo público. Por ahora solo con git.sh XD

ChangeLog

Notas al pie de página: