)]}'
{
  "commit": "d21ee7d111073dfd7a86f6fe870d0c1ec6a07126",
  "tree": "b0cc5b3a6bdd0ac55c39387d470290cdcf7cb70e",
  "parents": [
    "f97b9325f6d7ad2a28bfaf6fab3197d207fcb278"
  ],
  "author": {
    "name": "Jeff King",
    "email": "peff@peff.net",
    "time": "Mon Mar 30 00:31:29 2020 +0000"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Mon Mar 30 09:59:53 2020 -0700"
  },
  "message": "commit-graph: examine changed-path objects in pack order\n\nLooking at the diff of commit objects in pack order is much faster than\nin sha1 order, as it gives locality to the access of tree deltas\n(whereas sha1 order is effectively random). Unfortunately the\ncommit-graph code sorts the commits (several times, sometimes as an oid\nand sometimes a pointer-to-commit), and we ultimately traverse in sha1\norder.\n\nInstead, let\u0027s remember the position at which we see each commit, and\ntraverse in that order when looking at bloom filters. This drops my time\nfor \"git commit-graph write --changed-paths\" in linux.git from ~4\nminutes to ~1.5 minutes.\n\nProbably the \"--reachable\" code path would want something similar.\n\nOr alternatively, we could use a different data structure (either a\nhash, or maybe even just a bit in \"struct commit\") to keep track of\nwhich oids we\u0027ve seen, etc instead of sorting. And then we could keep\nthe original order.\n\nSigned-off-by: Jeff King \u003cpeff@peff.net\u003e\nSigned-off-by: Garima Singh \u003cgarima.singh@microsoft.com\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "862a00d67ed6372dc9c97953ff39ebca0550a011",
      "old_mode": 33188,
      "old_path": "commit-graph.c",
      "new_id": "31b06f878ced3ebbf843f3bf3352aa6d3a28840c",
      "new_mode": 33188,
      "new_path": "commit-graph.c"
    }
  ]
}
