top | item 2837344

Command Line Feedback from RVM and Git

41 points| joshuacc | 14 years ago |collectiveidea.com | reply

19 comments

order
[+] SeoxyS|14 years ago|reply
Here's my PS1:

    # -----------------------------------------------------------------
    # BASH PROMPT
    # -----------------------------------------------------------------
    
    parse_git_branch() {
        git_branch=`git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'`
        if [ $git_branch ]; then
            echo "•$git_branch"
        fi
    }
    
    # sexy prompt
    export PS1='[\[\033[0;35m\]\h\[\033[0;36m\] \w\[\033[00m\]\[\033[33m\]$(parse_git_branch)\[\03    3[00m\]]\$ '
And here's what it looks like:

http://akhun.com/seo/skitch/Screen_Shot_2011-08-02_at_8.47.1...

[+] Groxx|14 years ago|reply
I'm using something similar, but ran into a problem recently: go into a detached head mode (`git checkout HEAD^`). ALL your branches (local and remote) are spat out into your PS1. It's rare enough that I haven't looked into fixing it, but have any suggestions?
[+] generalk|14 years ago|reply
The best thing I ever did for my prompt was switch to zsh and start using oh-my-zsh[1]. Zsh itself has a handful of interesting features, but oh-my-zsh's built-in prompt theme support means I can cycle through prompts (most of which also include git or rvm info) with impunity.

[1]: https://github.com/robbyrussell/oh-my-zsh

[+] telemachos|14 years ago|reply
I'm currently using[1] a PS1 that shows branch name, whether any files in the repo need to be staged or committed and whether the repo is behind or ahead of the remote. (Credit to Adam Vandenberg[2] and Brian Carper[3] for whatever good ideas it contains.)

Here's what it looks like: http://cl.ly/8y50

[1] https://github.com/telemachus/dotfiles/blob/master/bashrc

[2] https://github.com/adamv/dotfiles/blob/master/bashrc

[3] http://briancarper.net/blog/570/git-info-in-your-zsh-prompt

[+] glenjamin|14 years ago|reply
My major step forward in bash prompt setup earlier this year was realising it didn't have to be a single line.

I have one info line which tells me path, user, host, git branch etc. And then the prompt sits nicely on the line below and is always at the same alignment.

http://i.imgur.com/0F6qt.png

[+] glenjamin|14 years ago|reply
Here's the bash incantation for that:

    command_exists __git_ps1 && git="$c_vcs\$(__git_ps1)"
    PS1="\n$c_path\w$git $c_id\u@$prompt_host$c_reset"
$c_* vars are just for colour, the command_exists switch lets me use the same dotfile on boxes which don't have git installed.
[+] jkmcf|14 years ago|reply
I use the same except my 2nd line has history id and time:

136 11:33:48 $

export PS1='\[\e[32m\]\u@\h \[\033[33m\]\w\[\033[00m\] $(__git_ps1 "(%s)") ${rvm_ruby_string}\n\# \[\033[31m\] \[\033[00m\]\t \\$ '

[+] Groxx|14 years ago|reply
* ugh * does anyone actually like that avatar animation, and the slow scrolling that results from it?

I find the comments here far more useful, and they aren't one-line commands with no explanation of the parts. Thanks for the submission, for the discussion's sake, but I'm not going back to that blog any time soon.

[+] bryckbost|14 years ago|reply
Thanks for checking out the article.

Which browser and OS are you using? Scrolling isn't slow in webkit for myself, but I'd be happy to dig in and make it smoother if it's an issue.

[+] SingAlong|14 years ago|reply
My PS1 looks like this:

1.9.2@rails31::project(branch)⚡

Shows the ruby version, rvm gemset, working directory and git branch, followed by a thunderbolt prompt. This is how I set it https://gist.github.com/1120566

[+] jsjohns2|14 years ago|reply
The best part is the blog's un-resizable 425px column of text, containing 150+ character shell commands.
[+] bryckbost|14 years ago|reply
We've wanted to make that better, just haven't found the time. Scrollbars seemed good enough for the interim.
[+] swah|14 years ago|reply
Unfortunately that makes bash kinda slow for me.