)]}'
{
  "commit": "c99883fee990a1baa7e0bf5f854c7485b7d0f0d9",
  "tree": "870cfd73b1fc2faf53da6d613ae820984695b305",
  "parents": [
    "ec18b4bac4f3c0760c26e83b8ade01ad1c815a9b"
  ],
  "author": {
    "name": "Shawn O. Pearce",
    "email": "sop@google.com",
    "time": "Tue Nov 11 17:12:43 2008 -0800"
  },
  "committer": {
    "name": "Shawn O. Pearce",
    "email": "sop@google.com",
    "time": "Wed Nov 12 09:12:19 2008 -0800"
  },
  "message": "Teach \u0027repo upload --replace\u0027 how to add replacement patch sets\n\nUsers are prompted with the list of known changes we are about\nto upload, and they can fill out the current change numbers for\nany changes which already exist in the data store.  For each of\nthose changes the change number and commit id is sent as part of\nthe upload request, so Gerrit can insert the new commit as a new\npatch set of the existing change, rather than make a new change.\n\nThis facility permits developers to replace a patch so they can\naddress comments made on a prior version of the same change.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f8dccdc50b9a26000b2351b30cf2258880b78b57",
      "old_mode": 33261,
      "old_path": "gerrit_upload.py",
      "new_id": "32451408ba87982445d6bdb9982754d114d1deba",
      "new_mode": 33261,
      "new_path": "gerrit_upload.py"
    },
    {
      "type": "modify",
      "old_id": "1e25c2c94e2fe7bbb40a10bbf09b42f3144a5f8e",
      "old_mode": 33188,
      "old_path": "project.py",
      "new_id": "39550335872eb3a28ae1fa00d362ad67e11beef4",
      "new_mode": 33188,
      "new_path": "project.py"
    },
    {
      "type": "modify",
      "old_id": "9018455f3b9ba4e3f578bbce3c9b342672c2f232",
      "old_mode": 33188,
      "old_path": "subcmds/upload.py",
      "new_id": "11f035d75bcd191760007cef60fd34de1abae5d0",
      "new_mode": 33188,
      "new_path": "subcmds/upload.py"
    }
  ]
}
