)]}'
{
  "commit": "ce0bd64299ae148ef61a63edcac635de41254cb5",
  "tree": "6e6e2b4c332fd37e27c404b180a3efe9cce8feda",
  "parents": [
    "87cefaaff958e30204a21757012a46883175c00f"
  ],
  "author": {
    "name": "Linus Torvalds",
    "email": "torvalds@osdl.org",
    "time": "Mon Jun 05 12:03:31 2006 -0700"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "junkio@cox.net",
    "time": "Mon Jun 05 17:23:31 2006 -0700"
  },
  "message": "pack-objects: improve path grouping heuristics.\n\nThis trivial patch not only simplifies the name hashing, it actually\nimproves packing for both git and the kernel.\n\nThe git archive pack shrinks from 6824090-\u003e6622627 bytes (a 3%\nimprovement), and the kernel pack shrinks from 108756213 to 108219021 (a\nmere 0.5% improvement, but still, it\u0027s an improvement from making the\nhashing much simpler!)\n\nWe just create a 32-bit hash, where we \"age\" previous characters by two\nbits, so the last characters in a filename count most. So when we then\ncompare the hashes in the sort routine, filenames that end the same way\nsort the same way.\n\nIt takes the subdirectory into account (unless the filename is \u003e 16\ncharacters), but files with the same name within the same subdirectory\nwill obviously sort closer than files in different subdirectories.\n\nAnd, incidentally (which is why I tried the hash change in the first\nplace, of course) builtin-rev-list.c will sort fairly close to rev-list.c.\n\nAnd no, it\u0027s not a \"good hash\" in the sense of being secure or unique, but\nthat\u0027s not what we\u0027re looking for. The whole \"hash\" thing is misnamed\nhere. It\u0027s not so much a hash as a \"sorting number\".\n\n[jc: rolled in simplification for computing the sorting number\n computation for thin pack base objects]\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nSigned-off-by: Junio C Hamano \u003cjunkio@cox.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3590cd5e5983cde07016f7a1f20ce146b6a73703",
      "old_mode": 33188,
      "old_path": "pack-objects.c",
      "new_id": "179560f2bd67e08d25bef0199c41ee0ee70793f9",
      "new_mode": 33188,
      "new_path": "pack-objects.c"
    }
  ]
}
