git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Bizarre missing changes (git bug?)

From
Linus Torvalds <torvalds@linux-foundation.org>
Date
Jul 30, 2008, 03:21 UTC
Message-ID
<alpine.LFD.1.10.0807292002520.3334@nehalem.linux-foundation.org>
In-Reply-To
<Pine.LNX.4.64.0807300430590.6791@localhost.localdomain>
On Wed, 30 Jul 2008, Roman Zippel wrote:
> 
> For printk.c look for commit 02630a12c7f72fa294981c8d86e38038781c25b7 and 
> try to find it in the graphical outputs.
Umm.

Why would you? Yes, it's there, if you ask for --full-history. And no, I don't think --full-history is actually useful to humans - it's very much there as a "here's all the data" thing where you could have the tools post-process it, where often "post-processing" is actually just searching for it.

And no, it's not there if you don't use --full-history.

But now, instead of _complaining_ about this, I would suggest you think about why it's a _good_ thing, and why it's so useful?

In other words, you're arriving at all your complaints from the wrong angle entirely, and because you have convinced yourself that things have to work a certain way, and then you're upset when they don't.

But you should _unconvince_ yourself - and look at whether maybe all your initial preconceptions were perhaps totally wrong? Because they were.

The reason that commit 02630a12c7f72fa294981c8d86e38038781c25b7 doesn't show up in the normal log when looking at kernel/printk.c is that it really doesn't exist as a _relevant_ part of history for the current state of that file. It exists only as a a side-branch for the GFS2 quota code that first adds a line

	+EXPORT_SYMBOL_GPL(tty_write_message);

(in commit b346671fa196a), and then removes the line not long after (in that commit 02630a12c7f). And both of them go away (along with the whole side-branch), because they didn't end up mattering for the end result: they only ever existed in that side branch, and by the time it was merged back into the main branch, all changes had been undone.

In other words, that change - in a VERY REAL WAY - never actually mattered for the current state of kernel/printk.c. And the history simplification sees that, and avoids showing the whole pointless branch.

This is such an obviously _good_ thing that I really am surprised ay how you can continue to argue against it. Especially as the examples you give "for" your argument are so wonderful examples _against_ it.

And yes, you can actually force gitk to show the state of that commit and thus force it to acknowledge that that state was relevant (although you won't necessarily force it to acknowledge that the relevance ties together with the final end result). You do that by just telling it that you're not just interested in HEAD, but in that commit too.

So I would literally suggest that anybody interested in this subject really just do

	gitk kernel/printk.c &
	gitk HEAD 02630a12c7f72fa294981c8d86e38038781c25b7 kernel/printk.c &
in the kernel, and now compare the two side-by-side. Notice where they 
differ (hint: look for the commit a0f1ccfd8d37457a6d8a9e01acebeefcdfcc306e 
- "[PATCH] lockdep: do not recurse in printk" - which is in both, and look 
below it).

Now, which graph is the more relevant and understandable one from the standpoint of what the current state of kernel/printk.c is?

Honestly now, Roman.

Because if you were actually willing to see this as a _feature_ (which it very much is), you'd admit that it's a damn clever and useful one. But I suspect you have dug yourself so deep into a hole that you can't admit that even to yourself any more.

				Linus
Previous: Kevin BallardNext: Linus Torvalds
Message 52 of 58 in “Bizarre missing changes (git bug?)”
  1. Tim HarperJul 21, 2008
  2. Linus TorvaldsJul 21, 2008
  3. Tim HarperJul 21, 2008
  4. Tim HarperJul 21, 2008
  5. Roman ZippelJul 26, 2008
  6. Linus TorvaldsJul 26, 2008
  7. Roman ZippelJul 27, 2008
  8. Linus TorvaldsJul 27, 2008
  9. Roman ZippelJul 27, 2008
  10. Linus TorvaldsJul 27, 2008
  11. Roman ZippelJul 28, 2008
  12. Linus TorvaldsJul 28, 2008
  13. Linus TorvaldsJul 28, 2008
  14. Roman ZippelJul 29, 2008
  15. Martin LanghoffJul 29, 2008
  16. Roman ZippelJul 30, 2008
  17. Martin LanghoffJul 30, 2008
  18. Linus TorvaldsJul 30, 2008
  19. Linus TorvaldsJul 30, 2008
  20. Junio C HamanoJul 30, 2008
  21. Junio C HamanoJul 31, 2008
  22. Linus TorvaldsJul 31, 2008
  23. revision traversal: show full history with merge simplificationJunio C Hamano, Jul 31, 2008
  24. Junio C HamanoJul 31, 2008
  25. Linus TorvaldsJul 31, 2008
  26. revision traversal: show full history with merge simplificationJunio C Hamano, Jul 31, 2008
  27. Linus TorvaldsJul 31, 2008
  28. Junio C HamanoJul 31, 2008
  29. Junio C HamanoAug 1, 2008
  30. Linus TorvaldsAug 1, 2008
  31. Junio C HamanoAug 1, 2008
  32. Jakub NarebskiJul 30, 2008
  33. Linus TorvaldsJul 29, 2008
  34. Linus TorvaldsJul 29, 2008
  35. Roman ZippelJul 29, 2008
  36. David KastrupJul 29, 2008
  37. Linus TorvaldsJul 29, 2008
  38. Roman ZippelJul 30, 2008
  39. Kevin BallardJul 30, 2008
  40. Linus TorvaldsJul 30, 2008
  41. Jeff KingJul 29, 2008
  42. Roman ZippelJul 29, 2008
  43. Olivier GalibertJul 29, 2008
  44. Jeff KingJul 29, 2008
  45. Linus TorvaldsJul 29, 2008
  46. Roman ZippelJul 30, 2008
  47. Linus TorvaldsJul 30, 2008
  48. Jeff KingJul 30, 2008
  49. Linus TorvaldsJul 30, 2008
  50. Roman ZippelJul 30, 2008
  51. Kevin BallardJul 30, 2008
  52. Linus TorvaldsJul 30, 2008
  53. Linus TorvaldsJul 30, 2008
  54. Jeff KingJul 30, 2008
  55. Martin LanghoffJul 27, 2008
  56. Roman ZippelJul 28, 2008
  57. Alex RiesenJul 21, 2008
  58. Linus TorvaldsJul 21, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.