Poniendo la rama del repositorio de git en el prompt


A partir de la charla Git and Debian packaging me saltó la duda de como lograr un prompt que me diga la rama actual de git cuando me encuentre en un repositorio.

Christian "bubulle" Perrier nos ofreció éste link. La idea me gustó mucho, pero tuve que twikearlo un poco para que use colores :-)

El resultado, en mi \~/.bashrc

[...]
# Search for git repos.
parse_git_branch() {
  git branch 2> /dev/null | sed -e '/\^[\^*]/d' -e 's/* \(.*\)/(\1)/'
}
[
]{style="font-family: 'Courier New', Courier, monospace;"}
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes
[
]{style="font-family: 'Courier New', Courier, monospace;"}
if [ -n "\$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
[ ]{.Apple-tab-span style="white-space: pre;"}# We have color support; assume it's compliant with Ecma-48
[ ]{.Apple-tab-span style="white-space: pre;"}# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
[ ]{.Apple-tab-span style="white-space: pre;"}# a case would tend to support setf rather than setaf.)
[ ]{.Apple-tab-span style="white-space: pre;"}color_prompt=yes
    else
[ ]{.Apple-tab-span style="white-space: pre;"}color_prompt=
    fi
fi
[
]{style="font-family: 'Courier New', Courier, monospace;"}
if [ "\$color_prompt" = yes ]; then
    ]{style="font-family: 'Courier New', Courier, monospace;"}[[PS1='\${debian_chroot:+(\$debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\[\033[01;31m\]\$(parse_git_branch)\[\033[00m\] \\$ ]{style="font-family: 'Courier New', Courier, monospace;"}]{style="background-color: white;"}['
else
    PS1='\${debian_chroot:+(\$debian_chroot)}\u@\h:\w\$(parse_git_branch)\\$ '
fi
unset color_prompt force_color_prompt
[...]

Como verán, agregué la función parse_git_branch() tal y como se describe en el link. Luego agregué la llamada en la definición del color prompt.

Por supuesto, se puede mejorar aún mas :)

Nota 201207172003GMT-3: bubulle parece haber hecho lo mismo, sólo que él lo mejoró. Y por supuesto, cambié el post de forma acorde :)

Comments


There are no comments yet.

Add a Comment

You can use the Markdown syntax to format your comment.

Comment Atom Feed