)]}'
{
  "commit": "3a1ea94a491e3e0bcbc2d55b4cfb0b9eacace608",
  "tree": "00b748d6bb087da26ebc381535f9ac87691d1bf4",
  "parents": [
    "dc8c8deaa6b5847733bd7df011a4c7b7d1a64e0a"
  ],
  "author": {
    "name": "Han Xin",
    "email": "hanxin.hx@bytedance.com",
    "time": "Fri Jul 01 09:34:30 2022 +0800"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu Jun 30 23:00:32 2022 -0700"
  },
  "message": "commit-graph.c: no lazy fetch in lookup_commit_in_graph()\n\nThe commit-graph is used to opportunistically optimize accesses to\ncertain pieces of information on commit objects, and\nlookup_commit_in_graph() tries to say \"no\" when the requested commit\ndoes not locally exist by returning NULL, in which case the caller\ncan ask for (which may result in on-demand fetching from a promisor\nremote) and parse the commit object itself.\n\nHowever, it uses a wrong helper, repo_has_object_file(), to do so.\nThis helper not only checks if an object is mmediately available in\nthe local object store, but also tries to fetch from a promisor remote.\nBut the fetch machinery calls lookup_commit_in_graph(), thus causing an\ninfinite loop.\n\nWe should make lookup_commit_in_graph() expect that a commit given to it\ncan be legitimately missing from the local object store, by using the\nhas_object_file() helper instead.\n\nSigned-off-by: Han Xin \u003chanxin.hx@bytedance.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2b528187316e28eb114b575727dc26101aa9296a",
      "old_mode": 33188,
      "old_path": "commit-graph.c",
      "new_id": "2dd9bcc7ea36b013a9b646aaccbb6df503d481fd",
      "new_mode": 33188,
      "new_path": "commit-graph.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "be3333422993063c794332d0961c298687ff05eb",
      "new_mode": 33261,
      "new_path": "t/t5330-no-lazy-fetch-with-commit-graph.sh"
    }
  ]
}
