With the release of Mercurial 1.1 yesterday and me more and more getting into it again I complained on IRC that as much as I love git’s named branches, they make it kind of easy to just do something to the wrong branch. If you have a branch per folder it’s kind of more obvious in what branch you’re operating all the time, in my opinion.
But there is a simple solution for this: Martin today posted a quick guide on how to get the current branch name into your shell’s $PS1.
For this to work you need to source git’s autocompletion which can be found in the contrib/completion-folder of the source distribution. After you’ve sourced it (through your .bashrc, .bash_profile, …) you get some additional functions and esp.
__git_ps1 which gives you the current branch name in nice brackets. If you take a look into the
git-completion.bash file, also look at this paragraph:
# 4) Consider changing your PS1 to also show the current branch: # PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ ' # # The argument to __git_ps1 will be displayed only if you # are currently in a git repository. The %s token will be # the name of the current branch.
$(__git_ps1 " (%s)") to your PS1 and you should all be set. It’s also sweet in this regard, that it also works when you’re some folders within a git repository. Thanks Martin for this trick :D