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

Re: Bizarre missing changes (git bug?)

From
RZRoman Zippel <zippel@linux-m68k.org>
Date
Jul 29, 2008, 02:59 UTC
Message-ID
<Pine.LNX.4.64.0807281241180.6791@localhost.localdomain>
In-Reply-To
<alpine.LFD.1.10.0807272148030.3486@nehalem.linux-foundation.org>
Hi,
On Sun, 27 Jul 2008, Linus Torvalds wrote:
> You don't actually understand how git works, do you?

Probably not and to be honest I don't care, all I want is my history - the correct one. All I know it's in there somehow and all I care is how to get it out of there. Right now you're giving me the choice between a crappy incomplete history or a crappy history full of useless information. That's it? As long as your challenge involves being compared to crappy history, I'm not interested. If the solution should involve a switch "--correct-history" or I have to wait for the result, I don't care, because it's the correct history I want. As long as you're trying to sell me crappy history I'm not buying it.

Can we please get past this and look at what is required to produce the correct history?

Fact is based on the current git-log output it's simply impossible to produce the correct history without reading the whole history first, since the very last commit can still be relevant for an earlier merge to connect it properly into the graph. This means we need some extra information before even starting to scan through the commits. Luckily this information can be cached once it has been generated and it also can be updated incrementally. E.g. this information could be generated while generating the pack, so you only had to scan the commits which haven't been packed yet, but it's also possible to update it when merging/pulling new data. It's also not much information that is needed, all that is needed is list of commits per file (which are are usually only a few, mostly even none), which git-log can use, so it knows that these are important while scanning the tree.

Technically I don't see a really hard problem to implement this, the problem for me is only that I have no idea where to start this within git and how to integrate it. The other problem (over which I have absolutely no control) is whether anyone actually wants to produce a correct history. I hope there is someone, otherwise there would be no need for "git-log --full-history" (which is also used by git-web), this e.g. produces a nice example in kernel/printk.c, where git-web produces two commits (search for tty_write_message), for which none of the front ends can tell me usefully how it fits into the history (they either don't show it at all or it's lost in "gitk --full-history").

bye, Roman
Previous: Linus TorvaldsNext: Martin Langhoff
Message 14 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.