)]}'
{
  "commit": "b4b059f628173dd1d722ee8a9c592a80aec1fc2f",
  "tree": "f50190479725ab2dce518cdfc432b7b0e0b43b57",
  "parents": [
    "df5817926790f6e84d1936eab523556f96fa577a"
  ],
  "author": {
    "name": "Kevin Wolf",
    "email": "kwolf@redhat.com",
    "time": "Mon Jun 15 13:24:19 2015 +0200"
  },
  "committer": {
    "name": "Kevin Wolf",
    "email": "kwolf@redhat.com",
    "time": "Tue Jul 14 17:15:18 2015 +0200"
  },
  "message": "block: Introduce bdrv_open_child()\n\nIt is the same as bdrv_open_image(), except that it doesn\u0027t only return\nsuccess or failure, but the newly created BdrvChild object for the new\nchild node.\n\nAs the BdrvChild object already contains a BlockDriverState pointer (and\nthis is supposed to become the only pointer so that bdrv_append() and\nfriends can just change a single pointer in BdrvChild), the pbs\nparameter is removed for bdrv_open_child().\n\nSigned-off-by: Kevin Wolf \u003ckwolf@redhat.com\u003e\nReviewed-by: Max Reitz \u003cmreitz@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0398bffc03bdd618efd63a7cc32e5855c043678c",
      "old_mode": 33188,
      "old_path": "block.c",
      "new_id": "029feeb7f945a610de4e7e51980fbb8fa108d667",
      "new_mode": 33188,
      "new_path": "block.c"
    },
    {
      "type": "modify",
      "old_id": "06e4137008eb94f7143d92dfba02356cb39ff3c7",
      "old_mode": 33188,
      "old_path": "include/block/block.h",
      "new_id": "50487726f5c6d89cedba7c598601265c57526c3b",
      "new_mode": 33188,
      "new_path": "include/block/block.h"
    },
    {
      "type": "modify",
      "old_id": "8996baf2f09d323fcf0a6ab7c97565b8832c144c",
      "old_mode": 33188,
      "old_path": "include/block/block_int.h",
      "new_id": "ec244b5d06726c5c9a3c97405426e76f4fc3f1ca",
      "new_mode": 33188,
      "new_path": "include/block/block_int.h"
    }
  ]
}
