Subject: Re: [PATCH] Add git-branches-script

From: Miguel Bazdresch <[email-masked]>
Date: Wed, 17 Aug 2005 15:37:58 -0500

* Amos Waterland <[email-masked]> [2005-08-16 00:48]:
> For people whose workflow involves switching back and forth between a
> lot of branches, it can be really helpful to be able to quickly tell
> which branch you are on and which ones are available.  This patch
> introduces a small script that when invoked as `git branches' prints a
> list of available branches with a star in front of the one you are on:
> 
>  $ cd linux-2.6/
>  $ git checkout -b ppc64-cleanups
>  $ git checkout -b ppc64-new-devel
>  $ git checkout -b ppc64-all-merge
>  $ git branches
>    master
>  * ppc64-all-merge
>    ppc64-cleanups
>    ppc64-new-devel

Some might find it useful to put Amos' script in a bash function and
then put the current branch in the prompt. What I did was to put this
function in my .bashrc:

gitbranch () {
	. git-sh-setup-script &&
	branch=$(basename $(readlink $GIT_DIR/HEAD)) &&
	echo -n "" $branch ""
}

Then I modified my bash prompt:

export PS1='\[\033[1;31m\]\j$(gitbranch)[\w]\$ \[\033[0m\]'
                            ^^^^^^^^^^^

Now, if my current dir is not a git repo, I have my regular prompt. As
soon as I cd into a git repo, I get the current branch in the prompt, as
follows:

0[~]$ cd gitrepo
0 master [~/gitrepo]$ git checkout branch1
0 branch1 [~/gitrepo]$ cd ..
0[~]$

-- 
Miguel Bazdresch
http://thewizardstower.org/