Tous les soirs avant d’éteindre mon ordinateur j’essaie de m’assurer que tous les changements que j’ai faites dans mes projets soient “commité”. Si j’ai bossé sur plusieurs choses ça peut être fastidieux de devoir repasser dans chaque projet pour vérifier l’état du dépôt, et je peux en oublier.
Pour me faciliter la vie et éviter les oublis j’ai donc fait un petit script :
repos="$(find ~/src -type d -name .git -exec dirname {} +)"
for repo in $repos; do
if git -C "$repo" status -s | grep -q .; then
echo "$repo"
git -C "$repo" status -s
fi
done
Je récupère ainsi la liste de tous les dossiers en dessous de ~/src/
qui contiennent un dossier .git
, et pour tout ceux pour lesquels la commande git status
retourne quelque chose, j’affiche ce quelque chose avec le chemin du dossier.
J’ai ensuite intégré ça dans une fonction de mon .bashrc
, que j’exécute avant d’éteindre mon ordinateur et m’assurer que tout est en ordre. J’ai une fonction hello
pour le matin, et une bye
pour le soir :
# manage dotfiles with git
alias dfg='git --git-dir=$HOME/.local/share/dfg --work-tree=$HOME'
# morning routine shortcut
function hello() {
echo --- Update dotfiles ---
dfg pull
echo --- Update passwords ---
pass git pull
echo --- Update system ---
yay -Syu
echo --- Check today calendar ---
khal list today
}
# evening routine shortcut
function bye() {
echo --- Check repositories status ---
repos="$(find ~/src -type d -name .git -exec dirname {} +)"
repo in $repos; do
if git -C "$repo" status -s | grep -q .; then
echo "$repo"
git -C "$repo" status -s
fi
done
echo --- Check password store status ---
pass git status -s
echo --- Check dotfiles status ---
dfg status -s
dfg log --oneline "${u}..HEAD"
echo --- Check today calendar ---
khal list tomorrow
}
Il y a quelques pistes d’amélioration possibles. Par exemple vérifier que tous les changements ont été poussé sur le dépôt distant, ça peut se faire avec git log ${u}..HEAD
, mais ça pose problème pour les submodules j’ai l’impression et je n’ai pas encore creuser comment faire ça proprement. Si vous avez des idées n’hésitez pas à m’envoyer ça par email.
Mise à jour 17/09/2020 : un commentaire sur le JdH a porté à ma connaissance un merveilleux outil, git-summary qui fait ça beaucoup mieux que mon bout de script, et qui en fait beaucoup plus également. Testé et joyeusement adopté.
Commenter
Articles de blogs que je lis
40 ans de GNU
40 ans de GNU Richard Stallman ne voulait pas changer le monde. Il ne voulait pas se battre contre les moulins à vent. Il ne voulait pas réinventer la roue. Richard Stallman voulait simplement retrouver ses amis, sa communauté. Pour ce jeune homme barbu et …
– Ploum.net · 27 Sep 2023
La blogchain
Avec les réseaux sociaux, les petits espaces personnels interconnectés qu’étaient les blogs ont peu à peu disparu du paysage. Il en reste, mais les liens ne sont plus aussi forts. À la grande époque il était fréquent d’avoir des blogroll. sur un coin de c…
– Carnet de notes · 8 Sep 2023
#63 : Comment parler du vivant pour mieux l’appréhender
Baptiste Morizot est philosophe, maître de conférences à Aix-Marseille Université et auteur de plusieurs ouvrages sur les relations entre l'humain et le reste du vivant (Les Diplomates, Sur la piste animale, Manières d'être vivant…). En avril dern…
– Nourritures terrestres · 13 Aug 2023