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

Re-done kernel archive - real one?

From
Linus Torvalds <torvalds@osdl.org>
Date
Apr 16, 2005, 23:01 UTC
Message-ID
<Pine.LNX.4.58.0504161543590.7211@ppc970.osdl.org>

Ok, nobody really objected to the notion of leaving the kernel history behind for now, and in fact most people seemed to basically agree. So with that decided, the old kernel testing tree was actually perfectly ok, except it had been build up with the old-style commit date handling, which made me not want to use it as a base for any real work.

So I re-created the dang thing (hey, it takes just a few minutes), and pushed it out, and there's now an archive on kernel.org in my public "personal" directory called "linux-2.6.git". I'll continue the tradition of naming git-archive directories as "*.git", since that really ends up being the ".git" directory for the checked-out thing.

I'm not going to announce it on linux-kernel yet, because I don't think it's useful to anybody but a git person anyway. Besides, I don't actually know how happy the kernel.org people are about this distribution method and whether it ends up being a horrible disaster for the mirroring setup.

Peter made some noises about /pub/scm, which makes sense, and would be a better place than my public tree. Apparently there are other places that are willing and able to host things too, so we'll see.

NOTE! The roughly 10x expansion of archive size goind from BK to git ends up in a similar 10x bandwidth expansion, in addition to just the overhead of reading tons of directory entries and comparing them (which is what both a wget and rsync thing ends up doing). I'm sure we can bring that down with smarter synchronization tools, but I also suspect that's some way away.

So is real common usage, though, so maybe it's not that bad at all. Who knows. We haven't hit a single real snag so far (except it took several days longer than I expected, but hey, I expect lots of things ;), and I'm sure real usage will show lots of them.

Similarly, we don't really have real merging, which makes tracking harder, but I suspect actually having a tree out there will make people more motivated and have more of a test-case. I'm feeling good enough about the plumbing that I think I solved the "hard" part of it, and now it's just the boring 95% left - scripting around it.

I think that with the new merge model, the easiest thing to do is to just download all new objects, and then download the HEAD file under a new name.

Ie we have two phases to the merge: first get the objects, with something like

	repo=kernel.org:/pub/kernel/people/torvalds/linux-2.6.git
	rsync --ignore-existing -acv $(repo)/ .git/

which will _not_ download the new HEAD file (since you already have one of your own), and then when you actually decide to merge you do

	rsync -acv $(repo)/HEAD .git/MERGE_WITH

and now you can look at your old HEAD, and the MERGE_WITH thing, look up the parents, and then do

	read-tree -m <parent-tree> <head-tree> <merge-with-tree>
	write-tree
	commit-tree <result-tree> -p <head-tree> -p <merge-with-tree>

(which should actually _work_, assuming that the merge had no file conflicts).

This seems to be a sane way to do merges, and if the scripting starts from there and then becomes smarter...

		Linus
Next: Russell King
Message 1 of 60 in “Re-done kernel archive - real one?”
  1. Linus TorvaldsApr 16, 2005
  2. Russell KingApr 17, 2005
  3. Petr BaudisApr 17, 2005
  4. Linus TorvaldsApr 17, 2005
  5. Russell KingApr 17, 2005
  6. Linus TorvaldsApr 17, 2005
  7. Linus TorvaldsApr 17, 2005
  8. Russell KingApr 17, 2005
  9. Linus TorvaldsApr 17, 2005
  10. Russell KingApr 17, 2005
  11. Linus TorvaldsApr 17, 2005
  12. Russell KingApr 17, 2005
  13. Russell KingApr 18, 2005
  14. Petr BaudisApr 18, 2005
  15. Linus TorvaldsApr 18, 2005
  16. Petr BaudisApr 18, 2005
  17. Russell KingApr 17, 2005
  18. Linus TorvaldsApr 17, 2005
  19. David A. WheelerApr 17, 2005
  20. Petr BaudisApr 17, 2005
  21. Russell KingApr 17, 2005
  22. David A. WheelerApr 17, 2005
  23. Martin SchlemmerApr 18, 2005
  24. H. Peter AnvinApr 17, 2005
  25. Jochen RoemlingApr 17, 2005
  26. Randy.DunlapApr 17, 2005
  27. Petr BaudisApr 17, 2005
  28. David WoodhouseApr 17, 2005
  29. Linus TorvaldsApr 17, 2005
  30. Russell KingApr 17, 2005
  31. Russell KingApr 17, 2005
  32. Linus TorvaldsApr 17, 2005
  33. Russell KingApr 18, 2005
  34. Martin SchlemmerApr 18, 2005
  35. Petr BaudisApr 18, 2005
  36. Linus TorvaldsApr 18, 2005
  37. Linus TorvaldsApr 18, 2005
  38. Petr BaudisApr 18, 2005
  39. Russell KingApr 18, 2005
  40. Linus TorvaldsApr 18, 2005
  41. Petr BaudisApr 18, 2005
  42. Russell KingApr 18, 2005
  43. Petr BaudisApr 18, 2005
  44. Russell KingApr 19, 2005
  45. Linus TorvaldsApr 18, 2005
  46. Russell KingApr 18, 2005
  47. Linus TorvaldsApr 18, 2005
  48. Petr BaudisApr 18, 2005
  49. Greg KHApr 18, 2005
  50. Randy.DunlapApr 18, 2005
  51. Linus TorvaldsApr 18, 2005
  52. Greg KHApr 18, 2005
  53. Greg KHApr 18, 2005
  54. Linus TorvaldsApr 18, 2005
  55. Greg KHApr 18, 2005
  56. Linus TorvaldsApr 18, 2005
  57. H. Peter AnvinApr 17, 2005
  58. randy_dunlapApr 17, 2005
  59. David WoodhouseApr 17, 2005
  60. randy_dunlapApr 18, 2005

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.