Subject: git-svn, and which branch am I on?

From: Daniel Pittman <[email-masked]>
Date: Sat, 28 Feb 2009 19:50:08 +1100

G'day.

I recently got asked a question about git-svn that I had no idea how to
answer, and which I am actually curious to know how to find out.

The general question was: in git, how do I identify where this branch
came from?

Specifically, this was about 'git svn', but also generally how to
identify this information in git.

So, with a repository branch layout like this:

  master        (local)
  testing       (local)
  trunk         (remote)
  v100          (remote)

How would I find out which remote branch master and trunk came from?

To restate that, because I am not sure if that is clear, given this
layout of branches:

     trunk (remote)
     |
 o---o---o---o---o  branch master
  \
   \
    o---o---o---o branch testing
    |
    v100 (remote)

How can I identify that 'testing' came from the 'v100' branch, and that
master came from the 'trunk' branch?

Ideally, I would like to work this out on the command line, without
needing to reference gitk or another graphical tool, but even a solution
that used them would be fine.

Initially I figured there would be some equivalent of the Mercurial
'glog' output available, showing this; for reference the second and
third examples here are what I was envisaging:
http://www.selenic.com/mercurial/wiki/index.cgi/GraphlogExtension

(from that display I could infer where testing and master came from,
 rather than directly getting the answer, but that is just fine.)

...and, finally, is the reason that I am finding it hard to explain this
because I have an expectation of how things work that doesn't match up
with git?  In other words, is the question actually meaningless?

Regards,
        Daniel