)]}'
{
  "commit": "9442710801b0b7b9aeefe60408d1835af138cfcc",
  "tree": "3c4607b55efcc78035c7beb5091aa28dcd9af860",
  "parents": [
    "74991a98df79ff3702dcb3b5c22c7b9ec20cfead"
  ],
  "author": {
    "name": "Jeff King",
    "email": "peff@peff.net",
    "time": "Mon Aug 13 21:59:27 2012 -0400"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Mon Aug 13 21:52:36 2012 -0700"
  },
  "message": "parse_feature_request: make it easier to see feature values\n\nWe already take care to parse key/value capabilities like\n\"foo\u003dbar\", but the code does not provide a good way of\nactually finding out what is on the right-hand side of the\n\"\u003d\".\n\nA server using \"parse_feature_request\" could accomplish this\nwith some extra parsing. You must skip past the \"key\"\nportion manually, check for \"\u003d\" versus NUL or space, and\nthen find the length by searching for the next space (or\nNUL).  But clients can\u0027t even do that, since the\n\"server_supports\" interface does not even return the\npointer.\n\nInstead, let\u0027s have our parser share more information by\nproviding a pointer to the value and its length. The\n\"parse_feature_value\" function returns a pointer to the\nfeature\u0027s value portion, along with the length of the value.\nIf the feature is missing, NULL is returned. If it does not\nhave an \"\u003d\", then a zero-length value is returned.\n\nSimilarly, \"server_feature_value\" behaves in the same way,\nbut always checks the static server_feature_list variable.\n\nWe can then implement \"server_supports\" in terms of\n\"server_feature_value\". We cannot implement the original\n\"parse_feature_request\" in terms of our new function,\nbecause it returned a pointer to the beginning of the\nfeature. However, no callers actually cared about the value\nof the returned pointer, so we can simplify it to a boolean\njust as we do for \"server_supports\".\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": "06413e1584dc762063feaa3728209a4d2864ebc7",
      "old_mode": 33188,
      "old_path": "cache.h",
      "new_id": "b71b0650f4ba7eb6b588c24cbf7d30661e96d9fb",
      "new_mode": 33188,
      "new_path": "cache.h"
    },
    {
      "type": "modify",
      "old_id": "912cddeea8c4f09ec523ce19e677358c84eda9b7",
      "old_mode": 33188,
      "old_path": "connect.c",
      "new_id": "9aec10cec11233405b1d5b1cfb15030dcbcc0ce5",
      "new_mode": 33188,
      "new_path": "connect.c"
    }
  ]
}
