HervéRenault.fr

Mon prompt et git

Indiquer l'état du dépôt git dans le répertoire courant par un simple code de couleur, c'est très pratique. Exemple :

herve@vaio:/var/www/html/herverenault.fr/miscellanées (master) $  

Ce master marron m'indique qu'il y a des modifs sur ma branche. Pour cela, j'utilise ce script de Mike Stewart que j'ai modifié à mon goût :

J'aime sa simplicité mais le problème c'est qu'il bloque l'affichage du prompt lorsqu'on est dans un gros répertoire git, le temps qu'il exécute git status. Bien sûr, cela ne se produit plus quand le système a mis en cache les données du git status. Sauf que quand on revient dans le répertoire après avoir passé un peu de temps à faire autre chose, le cache du système ne contient plus ces données, et on attend de nouveau pendant le git status (qui s'exécute à chaque nouvelle ligne de commande dans le terminal).

J'ai donc fait en sorte d'être seulement averti quand j'arrive dans un répertoire qui fait partie d'un dépôt git, grâce à ces deux lignes dans mon .bashrc :

alias gp='source ~/scripts/git-prompt.sh'
PS1='\['$( tput bold )'\]\u@\h\['$( tput sgr0 )'\]:\w\['$( tput bold )'\]$( __git_ps1 " (%s) " )\['$( tput sgr0 )'\]$ '

Ce qui me donne, quand j'arrive dans le même répertoire dans un nouveau terminal :

herve@vaio:/var/www/html/herverenault.fr/miscellanées (master) $  

Ensuite, selon ce que je viens y faire, une modif ou un simple ls par exemple, je peux lancer mon prompt git avec l'alias gp ou pas.

Tweet