)]}'
{
  "commit": "7b1b98c420355ccea98d8bd55c9193ee6b7cef97",
  "tree": "0ceec0f9a47f2526cbc8feadf1d0faff480525af",
  "parents": [
    "ab045267447d52e63a79c0e18f89ae4411f5420b"
  ],
  "author": {
    "name": "Eric Blake",
    "email": "eblake@redhat.com",
    "time": "Mon May 04 09:05:12 2015 -0600"
  },
  "committer": {
    "name": "Markus Armbruster",
    "email": "armbru@redhat.com",
    "time": "Tue May 05 18:39:00 2015 +0200"
  },
  "message": "qapi: Document new \u0027alternate\u0027 meta-type\n\nThe next patch will quit special-casing \"\u0027union\u0027:\u0027Foo\u0027,\n\u0027discriminator\u0027:{}\" and instead use \"\u0027alternate\u0027:\u0027Foo\u0027\".\n\nSeparating docs from implementation makes it easier to focus\non wording without holding up code.  In particular, making\nalternate a separate type makes for a nice type hierarchy:\n\n          /-------- meta-type ------\\\n         /              |            \\\n    simple types    alternate     complex types\n    |         |                   |           |\n built-in   enum             type(struct)   union\n |       \\    /                            /    \\\nnumeric  string                         simple  flat\n\nA later patch will then clean up \u0027type\u0027 vs. \u0027struct\u0027\nconfusion.\n\nSigned-off-by: Eric Blake \u003ceblake@redhat.com\u003e\nReviewed-by: Markus Armbruster \u003carmbru@redhat.com\u003e\nSigned-off-by: Markus Armbruster \u003carmbru@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6404a2d734c1b16dda30030b5171884890f48dde",
      "old_mode": 33188,
      "old_path": "docs/qapi-code-gen.txt",
      "new_id": "588b1104afb89f02fb02484af82e499a1cb33aa9",
      "new_mode": 33188,
      "new_path": "docs/qapi-code-gen.txt"
    }
  ]
}
