)]}'
{
  "commit": "3f5d1749e7eb8ab745b348aa138564b809957d3d",
  "tree": "50e5c16d123e9b186118a657f1f419d64631cc05",
  "parents": [
    "3c7c41d6b7ee4c4576490a3b6cfefe4d59d24172"
  ],
  "author": {
    "name": "Aaron Plattner",
    "email": "aplattner@nvidia.com",
    "time": "Mon Dec 08 17:48:57 2025 -0800"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Tue Dec 09 18:12:25 2025 +0900"
  },
  "message": "packfile: skip hash checks in add_promisor_object()\n\nWhen is_promisor_object() is called for the first time, it lazily\ninitializes a set of all promisor objects by iterating through all\nobjects in promisor packs. For each object, add_promisor_object() calls\nparse_object(), which decompresses and hashes the entire object.\n\nFor repositories with large pack files, this can take an extremely long\ntime. For example, on a production repository with a 176 GB promisor\npack:\n\n $ time ~/git/git/git-rev-list --objects --all --exclude-promisor-objects --quiet\n ________________________________________________________\n Executed in   76.10 mins    fish           external\n    usr time   72.10 mins    1.83 millis   72.10 mins\n    sys time    3.56 mins    0.17 millis    3.56 mins\n\nadd_promisor_object() just wants to construct the set of all promisor\nobjects, so it doesn\u0027t really need to verify the hash of every object.\nSet PARSE_OBJECT_SKIP_HASH_CHECK to skip the hash check. This has the\nside effect of skipping decompression of blob objects completely, saving\na significant amount of time:\n\n $ time ~/git/git/git-rev-list --objects --all --exclude-promisor-objects --quiet\n ________________________________________________________\n Executed in  124.70 secs    fish           external\n    usr time   46.94 secs    0.00 millis   46.94 secs\n    sys time   43.11 secs    1.03 millis   43.11 secs\n\nSigned-off-by: Aaron Plattner \u003caplattner@nvidia.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9cc11b6dc56225175cb91268c65f2b034bcd0045",
      "old_mode": 33188,
      "old_path": "packfile.c",
      "new_id": "01b992a4e12f89b5f96549ae2a0bc72d0d015a59",
      "new_mode": 33188,
      "new_path": "packfile.c"
    }
  ]
}
