git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Getting 'git log' (or something else) to show me the relevant sub-graph?
@ 2010-04-20 14:49 Johan Herland
  2010-04-20 15:18 ` Michael J Gruber
  2010-04-20 20:45 ` Junio C Hamano
  0 siblings, 2 replies; 11+ messages in thread
From: Johan Herland @ 2010-04-20 14:49 UTC (permalink / raw)
  To: git

Hi,

Consider the following (simplified) history:

---O---O---O---O---O---O---O---O---O---O---O---O---M2--H  <-- mainline
    \                                             /
     O---O---O---O---O---O---O---M1--D---E---F---G  <-- dev-branch
              \                 /
               O---O---A---B---C  <-- topic-branch

Now, assume that I have bisected my way through to 'A', and found that 
it introduces some bug. Now, I'm interested in visualizing the path 
that this bug "travelled" to get into "mainline", i.e. the following 
sub-graph:

                          --M2--H  <-- mainline
                           /
        --M1--D---E---F---G  <-- dev-branch
         /
A---B---C  <-- topic-branch

In other words, I'm interested in the following log (with decorations):

H (mainline)
M2
G (dev-branch)
F
E
D
M1
C (topic-branch)
B
A

I have unsuccessfully dug through the 'git log' documentation to figure 
out if it can produce this log, so I'm now throwing the question to the 
almighty knowledge of the mailing list...

Here are some of my closest attempts, so far:

- git branch --contains A
	gives me "topic-branch", "dev-branch" and "mainline", which is
	relevant, but incomplete.

- git log --oneline --decorate --graph A^..mainline
	gives me a log/graph where I can search for A and then use the graph
	to trace the way back up to "mainline", but it still displays a lot of
	uninteresting commits (ancestors of M1 and M2) that I have to
	disregard. Although this is ok once in a while, the problem is common
	enough (and the real-world graphs complicated enough), that I'd like a
	better solution, if possible.

I guess what I'm looking for is something similar to --first-parent, 
except instead of the _first_ parent, it should follow the _relevant_ 
parent, as far as the relationship between A and "mainline" is 
concerned.

In set-theory terms I guess what I want is "that which is both an 
ancestor of H, and a descendant of A (inclusive)", but I don't know how 
to explain this to 'git log'.


Thanks for any help,

...Johan

-- 
Johan Herland, <johan@herland.net>
www.herland.net

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2010-04-21  9:04 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-20 14:49 Getting 'git log' (or something else) to show me the relevant sub-graph? Johan Herland
2010-04-20 15:18 ` Michael J Gruber
2010-04-20 20:45 ` Junio C Hamano
2010-04-20 22:10   ` [PATCH] revision: --ancestry-path Junio C Hamano
2010-04-21  7:34     ` Johan Herland
2010-04-21  7:47       ` Johannes Sixt
2010-04-21  8:01         ` Junio C Hamano
2010-04-21  8:19           ` [PATCH v2] " Junio C Hamano
2010-04-21  8:46           ` [PATCH] " Johan Herland
2010-04-21  9:04             ` Junio C Hamano
2010-04-21  8:49           ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).