)]}'
{
  "commit": "d1f70d9929ddd2748ccc9c1dd2f9603068e1f3e6",
  "tree": "746fa0d1ace702f114357d1798bc67eddd1b79a9",
  "parents": [
    "c8a300f6397dad7db00c3654ff6e50e9519ed7c9"
  ],
  "author": {
    "name": "Shawn O. Pearce",
    "email": "sop@google.com",
    "time": "Tue May 19 14:58:02 2009 -0700"
  },
  "committer": {
    "name": "Shawn O. Pearce",
    "email": "sop@google.com",
    "time": "Fri May 29 09:31:28 2009 -0700"
  },
  "message": "Refactor how projects parse remotes so it can be replaced\n\nWe now feed Project a RemoteSpec, instead of the Remote directly\nfrom the XmlManifest.  This way the RemoteSpec already has the\nfull project URL, rather than just the base, permitting other\ntypes of manifests to produce the URL in their own style.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "46976538886a155981597bd0581d391e3fb27724",
      "old_mode": 33188,
      "old_path": "manifest_xml.py",
      "new_id": "5c5617ac917dc1a55a997078eaa5f167da04d9d2",
      "new_mode": 33188,
      "new_path": "manifest_xml.py"
    },
    {
      "type": "modify",
      "old_id": "5ccf33eb114f97acd3609f1cc7153ea4b8ae9ad9",
      "old_mode": 33188,
      "old_path": "project.py",
      "new_id": "53fd38ee0b5e526c0e833b565d34ca6560bae955",
      "new_mode": 33188,
      "new_path": "project.py"
    },
    {
      "type": "delete",
      "old_id": "bb8f740c0e792eaab68af96a3a7422d775961e9c",
      "old_mode": 33188,
      "old_path": "remote.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "90b76e8b61fd800f4604fd9292a8873650fb6c4b",
      "old_mode": 33188,
      "old_path": "subcmds/init.py",
      "new_id": "0d0fcd060f4b3d491df62f6e6e492b09adc03ae2",
      "new_mode": 33188,
      "new_path": "subcmds/init.py"
    }
  ]
}
