)]}'
{
  "commit": "b67ceee80a4917f24eadccd83c9d0e9ddeb657f1",
  "tree": "d432bf720b2cf7da81c6e8329e8abe6d3cc3718c",
  "parents": [
    "1a42727d6cf57497119752653ddea3afa1e5ceaa"
  ],
  "author": {
    "name": "Johannes Schindelin",
    "email": "johannes.schindelin@gmx.de",
    "time": "Tue Apr 28 16:26:19 2026 +0000"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Wed Apr 29 21:44:54 2026 +0900"
  },
  "message": "test-tool: add a helper to synthesize large packfiles\n\nTo test Git\u0027s behavior with very large pack files, we need a way to\ngenerate such files quickly.\n\nA naive approach using only readily-available Git commands would take\nover 10 hours for a 4GB pack file, which is prohibitive.\n\nSide-stepping Git\u0027s machinery and actual zlib compression by writing\nuncompressed content with the appropriate zlib header makes things\nmuch faster. The fastest method using this approach generates many\nsmall, unreachable blob objects and takes about 1.5 minutes for 4GB.\nHowever, this cannot be used because we need to test git clone, which\nrequires a reachable commit history.\n\nGenerating many reachable commits with small, uncompressed blobs takes\nabout 4 minutes for 4GB. But this approach 1) does not reproduce the\nissues we want to fix (which require individual objects larger than\n4GB) and 2) is comparatively slow because of the many SHA-1\ncalculations.\n\nThe approach taken here generates a single large blob (filled with NUL\nbytes), along with the trees and commits needed to make it reachable.\nThis takes about 2.5 minutes for 4.5GB, which is the fastest option\nthat produces a valid, clonable repository with an object large enough\nto trigger the bugs we want to test.\n\nSigned-off-by: Johannes Schindelin \u003cjohannes.schindelin@gmx.de\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cedc234173e3774132d45709b3f968d083a013a0",
      "old_mode": 33188,
      "old_path": "Makefile",
      "new_id": "85405cb5b8d1483c78d692710e1774546907f86b",
      "new_mode": 33188,
      "new_path": "Makefile"
    },
    {
      "type": "modify",
      "old_id": "ac0827662298af71e2bd5e60135ae40fe469cb4a",
      "old_mode": 33188,
      "old_path": "compat/zlib-compat.h",
      "new_id": "5078c5ef6ce0e805af936cbc0a11654302d21ee0",
      "new_mode": 33188,
      "new_path": "compat/zlib-compat.h"
    },
    {
      "type": "modify",
      "old_id": "675e64c0101b61c5ff880cc4c53be4897fbb94c8",
      "old_mode": 33188,
      "old_path": "t/helper/meson.build",
      "new_id": "3235f10ab8aae17863689f55ec24a0902400afab",
      "new_mode": 33188,
      "new_path": "t/helper/meson.build"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3ce7078078efff498d46bcaa6a37ce5f0eab1ed2",
      "new_mode": 33188,
      "new_path": "t/helper/test-synthesize.c"
    },
    {
      "type": "modify",
      "old_id": "a7abc618b3887eecdcc45edccd1551d7e4b1fb41",
      "old_mode": 33188,
      "old_path": "t/helper/test-tool.c",
      "new_id": "b71a22b43bbc9ec41424dbe1e79757b8e6c959ad",
      "new_mode": 33188,
      "new_path": "t/helper/test-tool.c"
    },
    {
      "type": "modify",
      "old_id": "7f150fa1eb9ad2d0103196c2c2f337701a429a9e",
      "old_mode": 33188,
      "old_path": "t/helper/test-tool.h",
      "new_id": "f2885b33d58aa8956500f3c4cd735ab43e6d2048",
      "new_mode": 33188,
      "new_path": "t/helper/test-tool.h"
    }
  ]
}
