)]}'
{
  "commit": "cf3c6352100a0d302276e46e3f9a7f0804e224d8",
  "tree": "6722d811a4918a54dc02d9ae57670d343dc3f93c",
  "parents": [
    "9b519609a625386f517545ab31de147ad6f433cb"
  ],
  "author": {
    "name": "Jeff King",
    "email": "peff@peff.net",
    "time": "Mon Dec 12 14:52:22 2016 -0500"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Mon Dec 12 15:10:43 2016 -0800"
  },
  "message": "alternates: accept double-quoted paths\n\nWe read lists of alternates from objects/info/alternates\nfiles (delimited by newline), as well as from the\nGIT_ALTERNATE_OBJECT_DIRECTORIES environment variable\n(delimited by colon or semi-colon, depending on the\nplatform).\n\nThere\u0027s no mechanism for quoting the delimiters, so it\u0027s\nimpossible to specify an alternate path that contains a\ncolon in the environment, or one that contains a newline in\na file. We\u0027ve lived with that restriction for ages because\nboth alternates and filenames with colons are relatively\nrare, and it\u0027s only a problem when the two meet. But since\n722ff7f87 (receive-pack: quarantine objects until\npre-receive accepts, 2016-10-03), which builds on the\nalternates system, every push causes the receiver to set\nGIT_ALTERNATE_OBJECT_DIRECTORIES internally.\n\nIt would be convenient to have some way to quote the\ndelimiter so that we can represent arbitrary paths.\n\nThe simplest thing would be an escape character before a\nquoted delimiter (e.g., \"\\:\" as a literal colon). But that\ncreates a backwards compatibility problem: any path which\nuses that escape character is now broken, and we\u0027ve just\nshifted the problem. We could choose an unlikely escape\ncharacter (e.g., something from the non-printable ASCII\nrange), but that\u0027s awkward to use.\n\nInstead, let\u0027s treat names as unquoted unless they begin\nwith a double-quote, in which case they are interpreted via\nour usual C-stylke quoting rules. This also breaks\nbackwards-compatibility, but in a smaller way: it only\nmatters if your file has a double-quote as the very _first_\ncharacter in the path (whereas an escape character is a\nproblem anywhere in the path).  It\u0027s also consistent with\nmany other parts of git, which accept either a bare pathname\nor a double-quoted one, and the sender can choose to quote\nor not as required.\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": "b8bec711f47918ad3dc7e05d318525819f3a51ab",
      "old_mode": 33188,
      "old_path": "Documentation/git.txt",
      "new_id": "5f7826bf39557b5a8780e8b93e2e50c664d84c86",
      "new_mode": 33188,
      "new_path": "Documentation/git.txt"
    },
    {
      "type": "modify",
      "old_id": "fbafdbed94cfe810000fbf72dd5eaf54b1302d9c",
      "old_mode": 33188,
      "old_path": "sha1_file.c",
      "new_id": "fc6d864fda8c7c9c2b6bbae53b3d97a9a88d7f27",
      "new_mode": 33188,
      "new_path": "sha1_file.c"
    },
    {
      "type": "modify",
      "old_id": "22d9d8178b23db2cdf2f7066059af43d44eae6e9",
      "old_mode": 33261,
      "old_path": "t/t5615-alternate-env.sh",
      "new_id": "c33d089980b4a68f7191753e930a69355c307fc9",
      "new_mode": 33261,
      "new_path": "t/t5615-alternate-env.sh"
    }
  ]
}
