Re: identical hashes on two branches, but holes in git log
From: Philippe De Muyter <hidden>
Date: 2016-06-15 23:04:50
Hi Jeff, On Tue, May 19, 2015 at 07:39:25PM -0400, Jeff King wrote:
On Tue, May 19, 2015 at 03:29:58PM +0200, Philippe De Muyter wrote:quoted
Trying to understand, I have eventually done "git log" on my branch and on v3.15 with the following commands : git log v3.15 --full-history --decorate=short | grep '^commit' > /tmp/3.15.commits git log --full-history --decorate=short | grep '^commit' > /tmp/mybranch.commits I compare then the two histories with diff -u /tmp/3.15.commits /tmp/mybranch.commits and I get (excerpt) :--- /tmp/3.15.commits 2015-05-19 13:19:59.665205514 +0200 +++ /tmp/mybranch.commits 2015-05-19 13:19:52.452081328 +0200@@ -1,3780 +1,84 @@ -commit 1860e379875dfe7271c649058aeddffe5afd9d0d (tag: v3.15) -commit ...... -commit fad01e866afdbe01a1f3ec06a39c3a8b9e197014 (tag: v3.15-rc8) ... ... -commit c9eaa447e77efe77b7fa4c953bd62de8297fd6c5 (tag: v3.15-rc1) ... -commit 57673c2b0baa900dddae3b9eb3d7748ebf550eb3 +commit a1fb433346cb5733945b5fc243f7334744bae4fd (HEAD, macq_boards-3.14.0) +commit ... ... +commit 2be7b20bbb337e0031e0f0d39c9a4845b6bbf3b8It looks like v3.15 is ahead of your branch. And I _think_ your question is: since they both contain v3.14, shouldn't they also contain all of the ancestors of v3.14?
Thanks for understanding and clarifying my question.
The answer is yes. But from your output here:quoted
commit 455c6fdbd219161bd09b1165f11699d6d73de11c (tag: v3.14) ==== identical commit -commit c32fc9c803f8ed90a7548810de48ca33a3020168 ==== commit missing in my branch commit fedc1ed0f11be666de066b0c78443254736a942e ==== more identical commitsI think what you are saying is: c32fc9c803 comes after v3.14, so it should be an ancestor, right? And the answer is no. Git's traversal order does not necessarily reflect the true topology if you have multiple lines of development. And in this case, they do not have a direct ancestry relationship (i.e., they are on separate branches, and neither is an ancestor of the other).
Thanks for the explanation. Would that also be true (that unrelated commits could come in the output) with a simple 'git log' ? My initial problem (still unresolved/unanswered) is that some commits that appeared between v3.14-rc1 and v3.14-rc2 (specifically 817c27a128e18aed840adc295f988e1656fed7d1) are present in v3.15, but not in my branch. I have just checked online the v3.14 version on http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/arch/arm/boot/dts/imx6qdl.dtsi and I see also the same "problem": the commit removing 738 lines is in the log 817c27a128e18aed840adc295f988e1656fed7d1 "ARM: dts: imx6qdl: make pinctrl nodes board specific", but the v3.14 version of the file still contains the 738 removed line, and I see no commit restoring those lines. I do not understand why those 738 lines are still present in v3.14 although they were removed between v3.14-rc1 and v3.14-rc2 :( Philippe