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