)]}'
{
  "commit": "8466efa4bd92b970f7a37159404aef33296d9d46",
  "tree": "7ec79bcd9e3157cd1136b455963a59ec53a10c2a",
  "parents": [
    "ea717645d199f6f1b66058886475db3e8c9330e9"
  ],
  "author": {
    "name": "Tian Yuchen",
    "email": "a3205153416@gmail.com",
    "time": "Sat Jan 31 01:01:23 2026 +0800"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Fri Jan 30 09:13:47 2026 -0800"
  },
  "message": "t/perf/p3400: speed up setup using fast-import\n\nThe setup phase in \u0027t/perf/p3400-rebase.sh\u0027 generates 100 commits to\nsimulate a noisy history. It currently uses a shell loop that invokes\n\u0027git add\u0027, \u0027git commit\u0027, \u0027test_seq\u0027, and \u0027sort\u0027 in each iteration.\nThis incurs significant overhead due to repeated process spawning.\n\nOptimize the setup by using \u0027git fast-import\u0027 to generate the commit\nhistory. Additionally, pre-compute the forward and reversed file contents\nto avoid repetitive execution of \u0027seq\u0027 and \u0027sort\u0027.\n\nTo ensure the test measures rebase performance against a consistent\nobject layout (rather than the suboptimal pack/loose objects created\nby the raw import), perform a full repack (`git repack -a -d`) at the\nend of the setup.\n\nThis reduces the setup time significantly while maintaining the validity\nof the subsequent performance tests.\n\nPerformance enhancement (Average value of 5 tests):\n            Real        Rebase\n  Before:  29.045s      13.34s\n   After:  21.989s      12.84s\n\nMeasured on Lenovo Yoga 2020, Ubuntu 24.04.\n\nSigned-off-by: Tian Yuchen \u003ca3205153416@gmail.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e6b0277729b19631ad49740070b092ff08121972",
      "old_mode": 33261,
      "old_path": "t/perf/p3400-rebase.sh",
      "new_id": "56dc3e1d319c7d990ae1a9b52f1a1671105e5aa0",
      "new_mode": 33261,
      "new_path": "t/perf/p3400-rebase.sh"
    }
  ]
}
