)]}'
{
  "commit": "a650ad996db85b64643970dd7dc5920f989260a0",
  "tree": "0cf71e185acfc18fd110118d0ba352e3cc933786",
  "parents": [
    "1da2a42c7836a6a2041913965cc177629403f367"
  ],
  "author": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu Dec 18 12:35:40 2025 +0900"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu Dec 18 20:48:01 2025 +0900"
  },
  "message": "odb: do not use \"blank\" substitute for NULL\n\nWhen various *object_info() functions are given an extended object\ninfo structure as NULL by a caller that does not want any details,\nthe code uses a file-scope static blank_oi and passes it down to\nthe helper functions they use, to avoid handling NULL specifically.\n\nThe ps/object-read-stream topic graduated to \u0027master\u0027 recently\nhowever had a bug that assumed that two identically named file-scope\nstatic variables in two functions are the same, which of course is\nnot the case.  This made \"git commit\" take 0.38 seconds to 1508\nseconds in some case, as reported by Aaron Plattner here:\n\n  https://lore.kernel.org/git/f4ba7e89-4717-4b36-921f-56537131fd69@nvidia.com/\n\nWe _could_ move the blank_oi variable to the global scope in common\nsection to fix this regression, but explicitly handling the NULL is\na much safer fix.  It would also reduce the chance of errors that\nsomebody accidentally writes into blank_oi, making its contents\ndirty, which potentially will make subsequent calls into the\nfunction misbehave.  By explicitly handling NULL input, we no longer\nhave to worry about it.\n\nReported-by: Aaron Plattner \u003caplattner@nvidia.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "12177a7dd707a8f4efa46834f7e4e0a3ee8ddc4f",
      "old_mode": 33188,
      "old_path": "object-file.c",
      "new_id": "e0cce3a62a827a4a59ad92d52ac1862283970272",
      "new_mode": 33188,
      "new_path": "object-file.c"
    },
    {
      "type": "modify",
      "old_id": "f4cbee4b042d83e4442ba3e264b3752e68148bee",
      "old_mode": 33188,
      "old_path": "odb.c",
      "new_id": "85dc21b104d1836a6c7cacd269fa811b337706d2",
      "new_mode": 33188,
      "new_path": "odb.c"
    },
    {
      "type": "modify",
      "old_id": "7a16aaa90d0a2f817d2de8a5b2aac5b594f7ecfc",
      "old_mode": 33188,
      "old_path": "packfile.c",
      "new_id": "2aa6135c3a1fe4d46c72075787068439ba16c58b",
      "new_mode": 33188,
      "new_path": "packfile.c"
    }
  ]
}
