)]}'
{
  "commit": "f905a855b1d1e172ba1e51e03fc5ec531445575e",
  "tree": "8d767b5588c5c62e8a0c57fba8c82c50a80c8db5",
  "parents": [
    "e78ab370545d81a950fa3b2701dd7c72015ee802"
  ],
  "author": {
    "name": "Patrick Steinhardt",
    "email": "ps@pks.im",
    "time": "Thu Oct 30 11:38:39 2025 +0100"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu Oct 30 07:09:52 2025 -0700"
  },
  "message": "packfile: move the MRU list into the packfile store\n\nPackfiles have two lists associated to them:\n\n  - A list that keeps track of packfiles in the order that they were\n    added to a packfile store.\n\n  - A list that keeps track of packfiles in most-recently-used order so\n    that packfiles that are more likely to contain a specific object are\n    ordered towards the front.\n\nBoth of these lists are hosted by `struct packed_git` itself, So to\nidentify all packfiles in a repository you simply need to grab the first\npackfile and then iterate the `-\u003enext` pointers or the MRU list. This\npattern has the problem that all packfiles are part of the same list,\nregardless of whether or not they belong to the same object source.\n\nWith the upcoming pluggable object database effort this needs to change:\npackfiles should be contained by a single object source, and reading an\nobject from any such packfile should use that source to look up the\nobject. Consequently, we need to break up the global lists of packfiles\ninto per-object-source lists.\n\nA first step towards this goal is to move those lists out of `struct\npacked_git` and into the packfile store. While the packfile store is\ncurrently sitting on the `struct object_database` level, the intent is\nto push it down one level into the `struct odb_source` in a subsequent\npatch series.\n\nIntroduce a new `struct packfile_list` that is used to manage lists of\npackfiles and use it to store the list of most-recently-used packfiles\nin `struct packfile_store`. For now, the new list type is only used in a\nsingle spot, but we\u0027ll expand its usage in subsequent patches.\n\nSigned-off-by: Patrick Steinhardt \u003cps@pks.im\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b5454e5df137b44dfd1b75780b65b479f233c5a1",
      "old_mode": 33188,
      "old_path": "builtin/pack-objects.c",
      "new_id": "5348aebbe9f190a6bdf685cb500dda746ce24301",
      "new_mode": 33188,
      "new_path": "builtin/pack-objects.c"
    },
    {
      "type": "modify",
      "old_id": "1d6269f957e7819fb62963cde191360422b29229",
      "old_mode": 33188,
      "old_path": "midx.c",
      "new_id": "8022be9a45ecb981a54d9e0ed573d0b3d020d4a8",
      "new_mode": 33188,
      "new_path": "midx.c"
    },
    {
      "type": "modify",
      "old_id": "04649e52920a1f35e2efb8e556991c2e019398c8",
      "old_mode": 33188,
      "old_path": "packfile.c",
      "new_id": "4d2d3b674f3fb00e6d550acc24e0a48fce85d507",
      "new_mode": 33188,
      "new_path": "packfile.c"
    },
    {
      "type": "modify",
      "old_id": "9da7f14317b02ca78111cd422996167b0b41a8e0",
      "old_mode": 33188,
      "old_path": "packfile.h",
      "new_id": "39ed1073e4ad79bb7cdf5426328bab53e7650c41",
      "new_mode": 33188,
      "new_path": "packfile.h"
    }
  ]
}
