)]}'
{
  "commit": "da4398d6a03eb2cf857aa63190e9bf60305befd2",
  "tree": "61335160817ac56d4c0ad7014b8b4d0670435e95",
  "parents": [
    "6ebd1cafe2bb1dee34e106a8da3ee173b36259d3"
  ],
  "author": {
    "name": "Jeff King",
    "email": "peff@peff.net",
    "time": "Wed Jul 18 16:45:25 2018 -0400"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Wed Jul 18 15:45:27 2018 -0700"
  },
  "message": "add core.usereplacerefs config option\n\nWe can already disable replace refs using a command line\noption or environment variable, but those are awkward to\napply universally. Let\u0027s add a config option to do the same\nthing.\n\nThat raises the question of why one might want to do so\nuniversally. The answer is that replace refs violate the\nimmutability of objects. For instance, if you wanted to\ncache the diff between commit XYZ and its parent, then in\ntheory that never changes; the hash XYZ represents the total\nstate. But replace refs violate that; pushing up a new ref\nmay create a completely new diff.\n\nThe obvious \"if it hurts, don\u0027t do it\" answer is not to\ncreate replace refs if you\u0027re doing this kind of caching.\nBut for a site hosting arbitrary repositories, they may want\nto allow users to share replace refs with each other, but\nnot actually respect them on the site (because the caching\nis more important than the replace feature).\n\nSigned-off-by: Jeff King \u003cpeff@peff.net\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a32172a43c7369d0fff2a0a0ad32f6fde07149bf",
      "old_mode": 33188,
      "old_path": "Documentation/config.txt",
      "new_id": "bcf3d21ecb2aa7a2d78d5e9eca82fe1e4e88b5a9",
      "new_mode": 33188,
      "new_path": "Documentation/config.txt"
    },
    {
      "type": "modify",
      "old_id": "7968ef7566a1fc28c5d8e2ba99ae87c52fe23ece",
      "old_mode": 33188,
      "old_path": "config.c",
      "new_id": "5c6d8d17dd6d5321b28d6f4951c241d38b73af15",
      "new_mode": 33188,
      "new_path": "config.c"
    },
    {
      "type": "modify",
      "old_id": "aa3e24963967ba4be2394ceeab26f8317fb31b4b",
      "old_mode": 33261,
      "old_path": "t/t6050-replace.sh",
      "new_id": "86374a9c52c0bd26a8ba7223526c9e1f128f468a",
      "new_mode": 33261,
      "new_path": "t/t6050-replace.sh"
    }
  ]
}
