Hacker News new | past | comments | ask | show | jobs | submit login
Command Line Feedback from RVM and Git (collectiveidea.com)
41 points by joshuacc on Aug 2, 2011 | hide | past | favorite | 19 comments



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...


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?


My suggestion is to use something more like this (provided by Git's bash-completion):

    branch=$(__git_ps1 "%s")
That doesn't have any problem with detached head: http://cl.ly/8yN8


ooh, very nice. Prior to this & your other reply, I hadn't seen anything using the __git functions. Everyone uses sed. Thanks!


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


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


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


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.


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 \\$ '


Git's own bash/zsh completion support comes with utilities for the prompt. For details see:

http://git.kernel.org/?p=git/git.git;a=blob;f=contrib/comple...



* 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.


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.


Canary Chrome in OSX. It's been stuttery in every browser I've used, in multiple OSes; I've been on the site a couple times in the past for other posts (I think most via HN). To clarify: it doesn't crawl, but it's not smooth.

Looking at the profiler in Chrome, I'm not seeing any unnecessary events while scrolling between things - maybe it's a transparency somewhere instead? Removing a handful I could find did speed things up, though I probably missed a few. Browsers are still lame at those, unfortunately :/


Good to know. We'll work on getting it smoothed out a bit.


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


The best part is the blog's un-resizable 425px column of text, containing 150+ character shell commands.


We've wanted to make that better, just haven't found the time. Scrollbars seemed good enough for the interim.


Unfortunately that makes bash kinda slow for me.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: