Subversion aware prompt
Introduction
As I found some really cool stuff for adding git related information to the bash prompt, I’ve decided to do something similar for subversion.
Results
I’ve cooked some bash functions to retrieve informations about the status of a directory relatively to subversion. With that, it is possible to have the following prompt session:
eric@ice-age:~$ nt eric@ice-age:~/nufw-svn/trunk/nufw[4779*]$ cd doc/ eric@ice-age:~/nufw-svn/trunk/nufw/doc[4779]$
Home directory is not a subversion managed directory and the prompt is standard. When going to my nufw subversion tree, the prompt warns me that current revision is 4779 and that I’ve done local modifications (star is present). If I go to the doc directory, the revision is still the same but as there is no star I’ve no local modifications pending.
You can also check the status against the remote repository. The result will be a star prefixing the release number if your source tree is not up-to-date:
eric@ice-age:~/nufw-svn/trunk/nufw[*4790]$ svn up U src/libs/nubase/config-parser.lex.l U src/libs/nubase/strings.c Actualisé à la révision 4791. eric@ice-age:~/nufw-svn/trunk/nufw[4791]$
Please note that prompt can take long to compute because of this.
Usage
To use this feature, click to download my subversion-prompt and modify your .bashrc :
SVNP_HUGE_REPO_EXCLUDE_PATH="nufw-svn$|/tags$|/branches$" . ~/bin/subversion-prompt # set a fancy prompt PS1='\u@\h:\w$(__svn_stat)\$ '
You can even combine that feature with the original git feature. To do so, simply set:
PS1='\u@\h:\w$(__git_ps1 " (%s)")$(__svn_stat)\$ '
To check the status against the remote repository, yu need to add
SVNP_CHECK_DISTANT_REPO="1"
before sourcing subversion-prompt in your bashrc.
Similar features
zsh lover will find an interesting alternative on this post.
