)]}'
{
  "commit": "69e4b3426a608b4965c1cb0c6eab5252d880178b",
  "tree": "cc1ff079a2d89f88fee8e312242900e2b42cb79f",
  "parents": [
    "2db1a43f41880bb4aeea9dee8a7d13c5ad76db3f"
  ],
  "author": {
    "name": "Jeff King",
    "email": "peff@peff.net",
    "time": "Wed Apr 02 02:39:17 2014 -0400"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Fri Apr 04 15:29:44 2014 -0700"
  },
  "message": "pack-objects: do not reuse packfiles without --delta-base-offset\n\nWhen we are sending a packfile to a remote, we currently try\nto reuse a whole chunk of packfile without bothering to look\nat the individual objects. This can make things like initial\nclones much lighter on the server, as we can just dump the\npackfile bytes.\n\nHowever, it\u0027s possible that the other side cannot read our\npackfile verbatim. For example, we may have objects stored\nas OFS_DELTA, but the client is an antique version of git\nthat only understands REF_DELTA. We negotiate this\ncapability over the fetch protocol. A normal pack-objects\nrun will convert OFS_DELTA into REF_DELTA on the fly, but\nthe \"reuse pack\" code path never even looks at the objects.\n\nThis patch disables packfile reuse if the other side is\nmissing any capabilities that we might have used in the\non-disk pack. Right now the only one is OFS_DELTA, but we\nmay need to expand in the future (e.g., if packv4 introduces\nnew object types).\n\nWe could be more thorough and only disable reuse in this\ncase when we actually have an OFS_DELTA to send, but:\n\n  1. We almost always will have one, since we prefer\n     OFS_DELTA to REF_DELTA when possible. So this case\n     would almost never come up.\n\n  2. Looking through the objects defeats the purpose of the\n     optimization, which is to do as little work as possible\n     to get the bytes to the remote.\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": "50d794f5d9a2c53ca596e8f04a0b61809cc91fd0",
      "old_mode": 33188,
      "old_path": "builtin/pack-objects.c",
      "new_id": "c7590cb65acd96b6af208388193972cd1d24f7ee",
      "new_mode": 33188,
      "new_path": "builtin/pack-objects.c"
    }
  ]
}
