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

Re: New features in gitk

From
Linus Torvalds <torvalds@linux-foundation.org>
Date
Nov 2, 2007, 15:42 UTC
Message-ID
<alpine.LFD.0.999.0711020828440.3342@woody.linux-foundation.org>
In-Reply-To
<e5bfff550711020544h1e9a648apfd268eb549645ccc@mail.gmail.com>
On Fri, 2 Nov 2007, Marco Costalba wrote:
Show 7 quoted lines
> 
> I have tried to overcome --topo-order in qgit but I found it very
> difficult, too much for me.
> 
> Lazily drawing the layout it doesn't mean that you lazy load the data
> from git, indeed you load all the git-log output as soon as it
> arrives.

Would it be more palatable if I tried to write some visualization-specific front-end that acted kind of like "git rev-list", but would have some way of "resetting" its output?

The thing is, I'm pretty sure I can feed you commits really quickly if I don't sort them, and if I don't do the full and careful "oops, this commit was reachable from a commit that was marked uninteresting", but while the fast-and-stupid approach will work well enough for most things, it will occasionally get the wrong answer.

But it will *notice* when it gets the wrong answer, though, and can reset and start over!

IOW, I might be able to do something that
 - prints out the commit info per line
 - prepends each line with a line number
 - goes back to an earlier line 'n' when it notices that it needs to 
   output a commit before a previous commit (or when it notices that a 
   commit that it had already output was actually not supposed to show up)

and with something like that, I could make git give you incremental output.

The thing is, any revision information that requires "global knowledge" simply cannot scale. And "git rev-list --topo-order" may be fast as hell, and I can do it in one second on the kernel archive on my machine, but that's really only true when it's all cached.

If it's not cached, it will inevitably have to read in every single commit if you want a "final and unchanging ordering". Which inevitably gets you a really irritating startup latency. That's just fundamental.

On the other hand, if there is some way to say "oops, restart", I can optimistically give you a list that is always properly sorted on a *local* scale, but then based on later data I might notice that it wasn't right globally and that I need to re-do all or part of it.

But as mentioned, that requires that side-band data of "uhhuh, I screwed up, let me go back and fix it".

			Linus
Previous: Marco CostalbaNext: Marco Costalba
Message 10 of 57 in “New features in gitk”
  1. Paul MackerrasOct 28, 2007
  2. Linus TorvaldsOct 28, 2007
  3. Paul MackerrasOct 28, 2007
  4. Steffen ProhaskaOct 28, 2007
  5. Linus TorvaldsOct 28, 2007
  6. Paul MackerrasNov 1, 2007
  7. Linus TorvaldsNov 1, 2007
  8. Paul MackerrasNov 2, 2007
  9. Marco CostalbaNov 2, 2007
  10. Linus TorvaldsNov 2, 2007
  11. Marco CostalbaNov 2, 2007
  12. Linus TorvaldsNov 2, 2007
  13. 0/2 History replay supportLinus Torvalds, Nov 2, 2007
  14. 1/2 Simplify topo-sort logicLinus Torvalds, Nov 2, 2007
  15. 2/2 Support "history replay" for git log commandsLinus Torvalds, Nov 2, 2007
  16. Junio C HamanoNov 2, 2007
  17. Linus TorvaldsNov 2, 2007
  18. Linus TorvaldsNov 3, 2007
  19. Marco CostalbaNov 3, 2007
  20. 2/2 Add "--early-output" log flag for interactive GUI useLinus Torvalds, Nov 3, 2007
  21. Marco CostalbaNov 3, 2007
  22. Paul MackerrasNov 4, 2007
  23. Linus TorvaldsNov 4, 2007
  24. Paul MackerrasNov 4, 2007
  25. Marco CostalbaNov 4, 2007
  26. Linus TorvaldsNov 4, 2007
  27. 3/2 Enhance --early-output formatLinus Torvalds, Nov 4, 2007
  28. Junio C HamanoNov 5, 2007
  29. Linus TorvaldsNov 5, 2007
  30. Linus TorvaldsNov 5, 2007
  31. Linus TorvaldsNov 5, 2007
  32. 4/2 Fix parent rewriting in --early-outputLinus Torvalds, Nov 13, 2007
  33. Junio C HamanoNov 13, 2007
  34. Linus TorvaldsNov 13, 2007
  35. Linus TorvaldsNov 13, 2007
  36. Sven VerdoolaegeNov 13, 2007
  37. Junio C HamanoNov 13, 2007
  38. Shawn O. PearceNov 13, 2007
  39. Junio C HamanoNov 13, 2007
  40. Paul MackerrasNov 13, 2007
  41. Junio C HamanoNov 13, 2007
  42. Paul MackerrasNov 13, 2007
  43. Marco CostalbaNov 16, 2007
  44. Paul MackerrasNov 4, 2007
  45. Johannes SchindelinNov 2, 2007
  46. Linus TorvaldsNov 2, 2007
  47. Paul MackerrasNov 1, 2007
  48. Linus TorvaldsNov 1, 2007
  49. Linus TorvaldsNov 1, 2007
  50. Pierre HabouzitOct 28, 2007
  51. Mike HommeyOct 28, 2007
  52. Paul MackerrasOct 28, 2007
  53. Pierre HabouzitOct 29, 2007
  54. Jonathan del StrotherOct 29, 2007
  55. Pierre HabouzitOct 29, 2007
  56. Han-Wen NienhuysOct 29, 2007
  57. Michele BallabioOct 29, 2007

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.