)]}'
{
  "commit": "623d2c71255977544086c9be76dfeff43cdbaf88",
  "tree": "7e0ec75efceca82a585a50e6b33a507d86c06c95",
  "parents": [
    "778d260c316b9c72b06ad5edcb5535e7ee4a7804"
  ],
  "author": {
    "name": "Patrick Steinhardt",
    "email": "ps@pks.im",
    "time": "Thu Oct 08 10:35:52 2026 +0200"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu Oct 08 07:31:18 2026 -0700"
  },
  "message": "commit-graph: stop depending on `struct odb_source`\n\nTo read or write a commit graph we require access to the repository that\nthe graph should be read from or written for as well as the object\ndirectory to derive its location. Instead of passing in these two bits\nof information explicitly though, we pass in a `struct odb_source`,\nwhich carries with it both of these pieces of information.\n\nBut ultimately, this is somewhat flawed as we now assume that the source\neven has an on-disk representation, and furthermore we assume that the\ncommit graphs would live in \".git/objects/info\". This is true for the\n\"files\" backend, but it\u0027s not necessarily true for any other backend\nthat we may eventually want to introduce. So eventually, we\u0027ll want to\nevolve the commit-graph subsystem to become agnostic of the backend\u0027s\nlayout and let the backend itself decide where to read a commit graph\nfrom or where to write it to.\n\nWe\u0027re not there yet to do that switch, but the current design is already\ncausing issues for the intent of this patch series where we want to move\nalternates into the \"files\" backend.\n\nConvert the subsystem to take a repository plus an object directory path\ninstead. This unblocks moving around alternates, and it\u0027s also a step\nin the right direction for moving commit graphs into the source in a\nlater series.\n\nNote that we previously compared the `struct odb_source` pointers of two\ncommit graphs to figure out whether they were located in the same object\ndirectory, whereas we now have to compare their paths. Callers may pass\nin those paths in different forms though, for example relative to the\ncurrent working directory or as absolute paths. Convert the object\ndirectory into an absolute path both when loading and when writing\ncommit graphs so that the comparisons become more robust.\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": "b5784ad3c7c7f03521cdbe01ca9223d608ea9634",
      "old_mode": 33188,
      "old_path": "builtin/commit-graph.c",
      "new_id": "a986f08a947580e01bf26586f538f43b3d7102b6",
      "new_mode": 33188,
      "new_path": "builtin/commit-graph.c"
    },
    {
      "type": "modify",
      "old_id": "840b6b4083b945f2710adf6bec58747a459ea498",
      "old_mode": 33188,
      "old_path": "builtin/commit.c",
      "new_id": "0e750f6157b2ceefccf5df186a2d74f58f54d055",
      "new_mode": 33188,
      "new_path": "builtin/commit.c"
    },
    {
      "type": "modify",
      "old_id": "b2decc6cfdb8ae86b8b1e92caa85f4961ffc47ff",
      "old_mode": 33188,
      "old_path": "builtin/fetch.c",
      "new_id": "a4b21d2651e446dad46ceca131da7f773c713b96",
      "new_mode": 33188,
      "new_path": "builtin/fetch.c"
    },
    {
      "type": "modify",
      "old_id": "57a3520263d7be002e620ec9dbee9fe39c6379cc",
      "old_mode": 33188,
      "old_path": "builtin/gc.c",
      "new_id": "7acd4f3215b737cb2072c9d36a2b64679cd4d11a",
      "new_mode": 33188,
      "new_path": "builtin/gc.c"
    },
    {
      "type": "modify",
      "old_id": "5b4eb23a8332956a1b45562ccfd72c6301f08cb1",
      "old_mode": 33188,
      "old_path": "builtin/merge.c",
      "new_id": "d7bf209114fd43e6481e60eb4b0ede929db41b56",
      "new_mode": 33188,
      "new_path": "builtin/merge.c"
    },
    {
      "type": "modify",
      "old_id": "73814c16220cce334bae96399a984eb2a672e96a",
      "old_mode": 33188,
      "old_path": "commit-graph.c",
      "new_id": "80ebc6a5426bf710f17e77faddf9806eb8f85ff1",
      "new_mode": 33188,
      "new_path": "commit-graph.c"
    },
    {
      "type": "modify",
      "old_id": "13ca4ff010fa18580d2ae5041429bbe47019e3e4",
      "old_mode": 33188,
      "old_path": "commit-graph.h",
      "new_id": "bccf9c5c84483218479efd26044160a1d585b65d",
      "new_mode": 33188,
      "new_path": "commit-graph.h"
    },
    {
      "type": "modify",
      "old_id": "9f07b9c25a66e3c7bc20f780d8cb8edd483c131e",
      "old_mode": 33188,
      "old_path": "t/helper/test-read-graph.c",
      "new_id": "a75c817e472c7aad86f31063fd8f3fdc12b999d8",
      "new_mode": 33188,
      "new_path": "t/helper/test-read-graph.c"
    },
    {
      "type": "modify",
      "old_id": "ad2686669d4b304ff4f7fb7e13c6eba69f93bdef",
      "old_mode": 33261,
      "old_path": "t/t4216-log-bloom.sh",
      "new_id": "f57a3d66215c3fd68f2fb421ad7010cc82ed3bd7",
      "new_mode": 33261,
      "new_path": "t/t4216-log-bloom.sh"
    }
  ]
}
