<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Most of the GUIs just add a different
      wodge of complexity, where each is subtly different. <br>
      <br>
      From the command-line, an alias or script like <br>
      git log --oneline --abbrev-commit --all --graph --decorate --color<br>
      <br>
      will show you quite enough to make your head hurt, and is what the
      authoers use.<br>
      <br>
      --dave<br>
      <br>
      <br>
      On 03/06/2015 10:40 AM, Alex Volkov wrote:<br>
    </div>
    <blockquote
cite="mid:CAO1j=qcg182qMLu9kno6dGVchjiKG52F4VRa4OcqYhMi5n5b-Q@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div>Hi Giles,<br>
            <br>
          </div>
          Try installing 'gitk' graphical tool that visualize a lot of
          things your asking about. Just run "gitk &" from anywhere
          under your git project root repository.<br>
          <br>
        </div>
        Alex.<br>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Fri, Mar 6, 2015 at 10:29 AM, Giles
          Orr <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:gilesorr@gmail.com" target="_blank">gilesorr@gmail.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">I've
            started using git fairly heavily (although not necessarily
            very<br>
            well).  I have several repos: a couple are code, also my
            ~/.vim/<br>
            folder and I'm thinking about adding ~/bin/ .  If I remember
            to push<br>
            from a particular machine before leaving it, I'll never have
            to deal<br>
            with merging as I'm the only user.  While most likely my
            discomfort<br>
            with merging will be overcome by practice as I understand
            git does it<br>
            well (I use SVN at work: merging is shudder-inducing), I'm
            guessing<br>
            keeping everything up to date is still preferable.  These
            questions<br>
            are mostly about incorporating information about the repo
            into the<br>
            Bash prompt: I was impressed recently by the way zsh appears
            to handle<br>
            it, with a sequence of tiny icons in the lower right corner
            of the<br>
            terminal indicating relative status.  I didn't talk to the
            zsh user<br>
            long, so I don't know if that's built-in, a plugin, or
            something he<br>
            did himself.<br>
            <br>
            I'm starting from some code I got from <a
              moz-do-not-send="true" href="http://nitrous.io"
              target="_blank">nitrous.io</a>, lovely in its conciseness:<br>
            <br>
            parse_git_branch () {<br>
              git branch --no-color 2> /dev/null | sed -e '/^[^*]/d'
            -e "s/*<br>
            \(.*\)/\1$(parse_git_dirty)/"<br>
            }<br>
            parse_git_dirty () {<br>
              git diff --no-ext-diff --quiet --exit-code
            &>/dev/null || echo "!"<br>
            }<br>
            <br>
            Put \$(parse_git_branch) into your prompt and it tells you
            what branch<br>
            you're on, and if there are any unstaged changes (and goes
            away if<br>
            you're not in a repo).  I'd prefer it did uncommitted rather
            than<br>
            unstaged, haven't tried to fix that yet.  But I want to
            update it as<br>
            it doesn't deal with origin at all.<br>
            <br>
            So, the questions:<br>
            <br>
            What is the easiest and most concise way to determine if
            your local is<br>
            behind origin master?  I've found that "git remote show
            origin" will<br>
            show this information, but I'm not sure if it's the "best"
            way to find<br>
            out, and I'm also concerned that running that every time
            your prompt<br>
            comes up would slow things down as it makes a remote call(?)
            to get an<br>
            answer - when you might not even have a network connection,
            or worse,<br>
            a very slow connection.<br>
            <br>
            "git status" usually says "Your branch is up-to-date with<br>
            'origin/master'" (or "ahead"), but occasionally - even
            though origin<br>
            is configured properly - this line doesn't appear.  Is there
            a way to<br>
            convince it to always show this line?<br>
            <br>
            Unfortunately, "git status" doesn't seem to ever notice if
            you're<br>
            "behind" origin, thus the need for "git remote show
            origin".  Any fix<br>
            for that?<br>
            <br>
            The thought was to have output for the prompt that looked
            like this:<br>
            <br>
            (everything synced): "master-"<br>
            (uncommitted local changes): "master!-"<br>
            (behind origin): "master^"<br>
            (ahead of origin): "masterv"<br>
            (ahead and behind, with local changes): "master!^v"<br>
            <br>
            You get the general idea.<br>
            <br>
            I'm aware git is capable of immense complexity (branches,
            detached<br>
            head, multiple remotes, different remotes for push and pull,
            etc.)<br>
            that aren't addressed here.  If I tried to tackle all of
            that at once<br>
            (especially given I don't understand most of it) my head
            would explode<br>
            and nothing would get done.  So I'm sticking with my simple
            use case<br>
            until I have to deal with the more complex stuff.<br>
            <br>
            Any thoughts welcome.<br>
            <span class="HOEnZb"><font color="#888888"><br>
                --<br>
                Giles<br>
                <a moz-do-not-send="true"
                  href="http://www.gilesorr.com/" target="_blank">http://www.gilesorr.com/</a><br>
                <a moz-do-not-send="true"
                  href="mailto:gilesorr@gmail.com">gilesorr@gmail.com</a><br>
                ---<br>
                Talk Mailing List<br>
                <a moz-do-not-send="true" href="mailto:talk@gtalug.org">talk@gtalug.org</a><br>
                <a moz-do-not-send="true"
                  href="http://gtalug.org/mailman/listinfo/talk"
                  target="_blank">http://gtalug.org/mailman/listinfo/talk</a><br>
              </font></span></blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">---
Talk Mailing List
<a class="moz-txt-link-abbreviated" href="mailto:talk@gtalug.org">talk@gtalug.org</a>
<a class="moz-txt-link-freetext" href="http://gtalug.org/mailman/listinfo/talk">http://gtalug.org/mailman/listinfo/talk</a>
</pre>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
David Collier-Brown,         | Always do right. This will gratify
System Programmer and Author | some people and astonish the rest
<a class="moz-txt-link-abbreviated" href="mailto:davecb@spamcop.net">davecb@spamcop.net</a>           |                      -- Mark Twain
</pre>
  </body>
</html>