)]}'
{
  "commit": "753bc911f489748a837ecb5ea4b5216220b24845",
  "tree": "61346b5b47997ac2dc9859f76b1e849fccfaf34d",
  "parents": [
    "08fc0608657ee91bc85276667804c36a93138c7d"
  ],
  "author": {
    "name": "Kirill A. Korinskiy",
    "email": "catap@catap.ru",
    "time": "Sat Dec 20 09:19:46 2008 +0300"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Sun Dec 21 01:12:48 2008 -0800"
  },
  "message": "Remove the requirement opaquelocktoken uri scheme\n\nThe program flow of pushing over http is:\n\n - call lock_remote() to issue a DAV_LOCK request to the server to lock\n   info/refs and branch refs being pushed into; handle_new_lock_ctx() is\n   used to parse its response to populate \"struct remote_lock\" that is\n   returned from lock_remote();\n\n - send objects;\n\n - call unlock_remote() to drop the lock.\n\nThe handle_new_lock_ctx() function assumed that the server will use a\nlock token in opaquelocktoken URI scheme, which may have been an Ok\nassumption under RFC 2518, but under RFC 4918 which obsoletes the older\nstandard it is not necessarily true.\n\nThis resulted in push failure (often resulted in \"cannot lock existing\ninfo/refs\" error message) when talking to a server that does not use\nopaquelocktoken URI scheme.\n\nSigned-off-by: Kirill A. Korinskiy \u003ccatap@catap.ru\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5cecef434a7740a3f853462978c3e071b4da7e74",
      "old_mode": 33188,
      "old_path": "http-push.c",
      "new_id": "7c6460919bf3eba10c46cede11ffdd9c53fd2dd2",
      "new_mode": 33188,
      "new_path": "http-push.c"
    }
  ]
}
