)]}'
{
  "commit": "19a83d80854d88f079f8d6530812b50948f0e28c",
  "tree": "2ca943f3833963b4d34d1a675dc9f6ed2f1bd201",
  "parents": [
    "b1168ffadaff387a8b7ab9a9c861073035c505a8"
  ],
  "author": {
    "name": "Shawn O. Pearce",
    "email": "sop@google.com",
    "time": "Thu Apr 16 08:14:26 2009 -0700"
  },
  "committer": {
    "name": "Shawn O. Pearce",
    "email": "sop@google.com",
    "time": "Thu Apr 16 08:23:29 2009 -0700"
  },
  "message": "Use default rebase during sync instead of rebase -i\n\nrebase interactive (aka rebase -i) has changed in newer versions\nof git, and doesn\u0027t always generate the sequence of commits the\nsame way it used to.  It also doesn\u0027t handle having a previously\napplied commit try to be applied again.\n\nThe default rebase algorithm is better suited to our needs.\nIt uses --ignore-if-in-upstream when generating the patch series\nfor git-am, and git-am with its 3-way fallback is able to handle\na rename case just as well as the cherry-pick variant used by -m.\nIts also a generally faster implementation.\n\nSigned-off-by: Shawn O. Pearce \u003csop@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bd35c65e60d2cb19304afd965d96546d5f9cad1c",
      "old_mode": 33188,
      "old_path": "project.py",
      "new_id": "6ffbd023bc659a7882700301c469cc85377b7b15",
      "new_mode": 33188,
      "new_path": "project.py"
    }
  ]
}
