)]}'
{
  "commit": "8d20116038ff78b22069dd4e993b5819775f03d1",
  "tree": "4c7ec381f2452d3ae4ed5332230a8d7a61e6ec2b",
  "parents": [
    "b25ea555c39cd500740acb74fa9f1dab71588266"
  ],
  "author": {
    "name": "David James",
    "email": "davidjames@google.com",
    "time": "Fri Oct 11 17:03:19 2013 -0700"
  },
  "committer": {
    "name": "David James",
    "email": "davidjames@google.com",
    "time": "Mon Oct 14 15:34:32 2013 -0700"
  },
  "message": "repo: Support multiple branches for the same project.\n\nIt is often useful to be able to include the same project more than\nonce, but with different branches and placed in different paths in the\nworkspace. Add this feature.\n\nThis CL adds the concept of an object directory. The object directory\nstores objects that can be shared amongst several working trees. For\nnewly synced repositories, we set up the git repo now to share its\nobjects with an object repo.\n\nEach worktree for a given repo shares objects, but has an independent\nset of references and branches. This ensures that repo only has to\nupdate the objects once; however the references for each worktree are\nupdated separately. Storing the references separately is needed to\nensure that commits to a branch on one worktree will not change the\nHEAD commits of the others.\n\nOne nice side effect of sharing objects between different worktrees is\nthat you can easily cherry-pick changes between the two worktrees\nwithout needing to fetch them.\n\nBug: Issue 141\nChange-Id: I5e2f4e1a7abb56f9d3f310fa6fd0c17019330ecd\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "287f4d30b2068638e69d59d783ee99f8254a5f57",
      "old_mode": 33188,
      "old_path": "command.py",
      "new_id": "207ef46b3a1da74447c73ba5ac7e37b5d7fc5bc9",
      "new_mode": 33188,
      "new_path": "command.py"
    },
    {
      "type": "modify",
      "old_id": "bdbb1d4029c8a6c5802f579af3939f7062c4e47b",
      "old_mode": 33188,
      "old_path": "manifest_xml.py",
      "new_id": "647e89f9b1a864d16e700520502cd75baa44704f",
      "new_mode": 33188,
      "new_path": "manifest_xml.py"
    },
    {
      "type": "modify",
      "old_id": "dec21ab154d6487995bdc8514e5bbbf1639ae215",
      "old_mode": 33188,
      "old_path": "project.py",
      "new_id": "f9f1f75deea8530f6e6b3a0c049ce5ae351bf3c6",
      "new_mode": 33188,
      "new_path": "project.py"
    },
    {
      "type": "modify",
      "old_id": "b9a7774d6fc761395f4ce691640121de8df64127",
      "old_mode": 33188,
      "old_path": "subcmds/rebase.py",
      "new_id": "1bdc1f0b4bbbb8934daefbd9a6e27aebdaccddb3",
      "new_mode": 33188,
      "new_path": "subcmds/rebase.py"
    },
    {
      "type": "modify",
      "old_id": "e9d52b7b6562e34fdcdebba496be829a0ff0fe8c",
      "old_mode": 33188,
      "old_path": "subcmds/sync.py",
      "new_id": "d1a06412be39d303ecae4bb180d1753cb5782ef5",
      "new_mode": 33188,
      "new_path": "subcmds/sync.py"
    },
    {
      "type": "modify",
      "old_id": "8d801e0863f5967d2cf6bb563093e56b04276b9e",
      "old_mode": 33188,
      "old_path": "subcmds/upload.py",
      "new_id": "9ad55d797afa0238f5c2a8d8ff3f2dd40da8df64",
      "new_mode": 33188,
      "new_path": "subcmds/upload.py"
    }
  ]
}
