Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

Re: Can't find the revelant commit with git-log

From: René Scharfe <hidden>
Date: 2016-06-15 22:50:32

Am 07.02.2011 23:51, schrieb Junio C Hamano:
René Scharfe[off-list ref]  writes:
quoted
diff --git a/t/t6016-rev-list-graph-simplify-history.sh b/t/t6016-rev-list-graph-simplify-history.sh
index f7181d1..50ffcf4 100755
--- a/t/t6016-rev-list-graph-simplify-history.sh
+++ b/t/t6016-rev-list-graph-simplify-history.sh
@@ -168,6 +168,7 @@ test_expect_success '--graph --full-history --simplify-merges -- bar.txt' '
  	echo "|\\  ">>  expected&&
  	echo "| * $C4">>  expected&&
  	echo "* | $A5">>  expected&&
+	echo "* | $A4">>  expected&&
  	echo "* | $A3">>  expected&&
  	echo "|/  ">>  expected&&
  	echo "* $A2">>  expected&&
Thanks for a patch with a test; I am not sure if this is quite correct,
though.

A4 has three parents, C2, A3 and B2, and does not introduce any change
with respect to bar.txt.  A6 has bar.txt identical to that of A5, but we
cannot omit it because we are showing its two parents (A5 and C4), and
that is why we show it.  A4 isn't even gets shown as a merge, so I don't
understand why we need to show it?
Yes, this looks a bit silly on closer look.  I thought that it matches 
Francis' use case, but that's wrong -- having --simplify-merges instead 
of -Sstring makes a difference, obviously.

After looking at the case again, I think I have a simpler solution: no 
code change, just add --sparse (include all walked commits).  This gives 
the same results as the patched version:

	$ git log --oneline -m --sparse --full-history \
		-Sblacklist_iommu v2.6.26..v2.6.29 -- \
		drivers/pci/intel-iommu.c | wc -l
	    160

Sorry for the noise.

So, the lesson would be: If you want to find commits that removed a 
certain string in a certain set of files, add --full-history, -m and 
--sparse to your "git log -Sstring -- files" command.  This allows you 
to catch merges that reverted those files to a state before the string 
was introduced in the first place, otherwise history simplification can 
hide them.

I'm not sure if there's a way to make the flags and their interactions 
more intituitive.

René
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help