)]}'
{
  "commit": "c9e40ae8ec41c5566e5849a87c969fa81ef49fcd",
  "tree": "23cce772ee2ef011410fd4cbbd2c418e9f312d71",
  "parents": [
    "9ad2d5ea71d1470c2fd68b76c36b2ced3612cde3"
  ],
  "author": {
    "name": "Derrick Stolee",
    "email": "dstolee@microsoft.com",
    "time": "Tue Mar 30 13:11:04 2021 +0000"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Tue Mar 30 12:57:49 2021 -0700"
  },
  "message": "p2000: add sparse-index repos\n\np2000-sparse-operations.sh compares different Git commands in\nrepositories with many files at HEAD but using sparse-checkout to focus\non a small portion of those files.\n\nAdd extra copies of the repository that use the sparse-index format so\nwe can track how that affects the performance of different commands.\n\nAt this point in time, the sparse-index is 100% overhead from the CPU\nfront, and this is measurable in these tests:\n\nTest\n---------------------------------------------------------------\n2000.2: git status (full-index-v3)              0.59(0.51+0.12)\n2000.3: git status (full-index-v4)              0.59(0.52+0.11)\n2000.4: git status (sparse-index-v3)            1.40(1.32+0.12)\n2000.5: git status (sparse-index-v4)            1.41(1.36+0.08)\n2000.6: git add -A (full-index-v3)              2.32(1.97+0.19)\n2000.7: git add -A (full-index-v4)              2.17(1.92+0.14)\n2000.8: git add -A (sparse-index-v3)            2.31(2.21+0.15)\n2000.9: git add -A (sparse-index-v4)            2.30(2.20+0.13)\n2000.10: git add . (full-index-v3)              2.39(2.02+0.20)\n2000.11: git add . (full-index-v4)              2.20(1.94+0.16)\n2000.12: git add . (sparse-index-v3)            2.36(2.27+0.12)\n2000.13: git add . (sparse-index-v4)            2.33(2.21+0.16)\n2000.14: git commit -a -m A (full-index-v3)     2.47(2.12+0.20)\n2000.15: git commit -a -m A (full-index-v4)     2.26(2.00+0.17)\n2000.16: git commit -a -m A (sparse-index-v3)   3.01(2.92+0.16)\n2000.17: git commit -a -m A (sparse-index-v4)   3.01(2.94+0.15)\n\nNote that there is very little difference between the v3 and v4 index\nformats when the sparse-index is enabled. This is primarily due to the\nfact that the relative file sizes are the same, and the command time is\nmostly taken up by parsing tree objects to expand the sparse index into\na full one.\n\nWith the current file layout, the index file sizes are given by this\ntable:\n\n       |  full index | sparse index |\n       +-------------+--------------+\n    v3 |     108 MiB |      1.6 MiB |\n    v4 |      80 MiB |      1.2 MiB |\n\nFuture updates will improve the performance of Git commands when the\nindex is sparse.\n\nSigned-off-by: Derrick Stolee \u003cdstolee@microsoft.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dddd527b633034014f72cafac68976780e01cc9b",
      "old_mode": 33261,
      "old_path": "t/perf/p2000-sparse-operations.sh",
      "new_id": "94513c97748943b3d748a13c04ff8faa813229d0",
      "new_mode": 33261,
      "new_path": "t/perf/p2000-sparse-operations.sh"
    }
  ]
}
