Live data from Hacker News

Git info in your ZSH Prompt

briancarper.net

21–27 of 27 posts

Re: Git info in your ZSH Prompt

#21

Wow, am I the only person who prefers a shell prompt of just "$ "? I have a bunch of abbreviations for common git commands, though, so I guess it balances out.

I like a timestamp so that I know: (1) How long the last command took (approx, as there's time between the prompt showing and me putting in a command) (2) How long ago I ran the last command in a given shell window

When I care about the former (and I often do), I just prefix it with time. "time make bench" etc. The real / user / system break down is more meaningful than just wall clock time.

Re: Git info in your ZSH Prompt

#22

Earlier quoted context omitted.

The one I wrote, for Bash, uses SIGALRM (via the Time::HiRes perl module) to time out after half a second: http://github.com/paulbaumgart/git-situational-awareness

It would be cool to do the opposite as well, don't start checking the fancy vcs stuff until 1/2 second after the prompt is loaded.

Agreed. I don't think Bash allows async function execution, though.

Re: Git info in your ZSH Prompt

#23

Earlier quoted context omitted.

You're not- I can't stand waiting 3-5 seconds every time I hit enter, just so I can have a more verbose prompt that tells me things I already knew.

The one I wrote, for Bash, uses SIGALRM (via the Time::HiRes perl module) to time out after half a second: http://github.com/paulbaumgart/git-situational-awareness

It seems a lot simpler to just type "git br" (or, heck, "gb") when I care. Usually I have a good reason for being in a particular branch, though I tend to check before doing merging anyway.

When I want to fiddle with minor configuration details, hey, bash and zsh users have nothing on emacs. ;)

Re: Git info in your ZSH Prompt

#24
post #9

You can also use Git's own __git_ps1 from git-completion.bash in either bash or in zsh (see my other comment). Here's an example of it in use: http://github.com/avar/dotfiles/blob/master/.bashrc#L86 It doesn't give you info about whether you have staged files (but maybe it should). But it gives you a bunch of other neat stuff, like whether you're in a git-rebase or git-am operation

It definitely can tell you whether you have staged files, because I use it for that among other things. I don't remember how I turned that feature on, but it wasn't hard. Perhaps someone will chime in with the details.

Re: Git info in your ZSH Prompt

#25

Wow, am I the only person who prefers a shell prompt of just "$ "? I have a bunch of abbreviations for common git commands, though, so I guess it balances out.

You're not- I can't stand waiting 3-5 seconds every time I hit enter, just so I can have a more verbose prompt that tells me things I already knew.

This seems to be a large difference in people's work flows. Some of us like to remember things like what branch we're in, the file system structure of our project so we can edit in vim without needing NERDtree or some other IDE that organizes stuff, we like to know our libraries so we don't need auto-completion, and then there's the opposite people. For myself, I think the remember-for-me tools have their place, and I'm a fan of Flex's Flash Builder IDE even though I use vim for everything else, so I won't begrudge someone for choosing not to remember something. That's what doc is for.

On the other hand, in this case I frequently just use 'git status' which reports my branch anyway among other info I want to double-check just in case I somehow forgot, and this is really just a neat shell trick rather than being really useful, like the one that prints a green ':)' when the last command succeeded and a red ':(' when it failed...

Re: Git info in your ZSH Prompt

#26
post #24
post #9

You can also use Git's own __git_ps1 from git-completion.bash in either bash or in zsh (see my other comment). Here's an example of it in use: http://github.com/avar/dotfiles/blob/master/.bashrc#L86 It doesn't give you info about whether you have staged files (but maybe it should). But it gives you a bunch of other neat stuff, like whether you're in a git-rebase or git-am operation

It definitely can tell you whether you have staged files, because I use it for that among other things. I don't remember how I turned that feature on, but it wasn't hard. Perhaps someone will chime in with the details.

Just add the following lines in your .bashrc:

    export GIT_PS1_SHOWDIRTYSTATE=yes
    export GIT_PS1_SHOWUNTRACKEDFILES=yes

Re: Git info in your ZSH Prompt

#27
post #26
post #24

Earlier quoted context omitted.

It definitely can tell you whether you have staged files, because I use it for that among other things. I don't remember how I turned that feature on, but it wasn't hard. Perhaps someone will chime in with the details.

Just add the following lines in your .bashrc: export GIT_PS1_SHOWDIRTYSTATE=yes export GIT_PS1_SHOWUNTRACKEDFILES=yes

Thanks. I didn't know about those. I've configured them in my ~/.bashrc now: http://github.com/avar/dotfiles/commit/43454870
Post reply on HN