)]}'
{
  "commit": "72a0b98fac998894845488a3be989f8f9da9c0e3",
  "tree": "b7f2bb24121342b769fd4c604faeea9163eb6171",
  "parents": [
    "5f1189894b87fd7e494fd04a835c22d77f1e0a1e"
  ],
  "author": {
    "name": "Yiding Jia",
    "email": "yiding@fb.com",
    "time": "Wed Nov 06 17:29:08 2013 -0800"
  },
  "committer": {
    "name": "Michael Bolin",
    "email": "mbolin@fb.com",
    "time": "Tue Nov 12 17:52:39 2013 -0800"
  },
  "message": "buck.py more permissive symlinking.\n\nSummary:\nf0dedaec09331f73b3970658344cf8f3cb37a83b introduced a symlink aware walk aimed\nat preventing recursively symlink loops; however, it was too restrictive in\nthat it pruned all symlinks that it has visited before, not only those that\nwould result in recursive symlinks. This breaks legitimate uses of symlinking\nto siblings and cousin directories.\n\nThis diff adds a second test before pruning the symlink: not only must the\ntarget directory be one already visited, but it must also be a direct ancestor\nof the current directory.\n\nTest Plan:\nTrigger the traversal code by using recursive `glob` and `buck test --all` on\ndirectories with the following configurations:\n\nTest that siblings are okay (`b` and `c` are both traversed):\n\n  a/\n    b/\n    c -\u003e b\n\nTest that ancestors are still rejected (`c` is not traversed):\n\n  a/\n    b/\n      c/ -\u003e ../b\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ef735689d8bce579db4b97f456dde032a3f5e4cb",
      "old_mode": 33188,
      "old_path": "src/com/facebook/buck/parser/buck.py",
      "new_id": "42170076c7a8daa01b3ae7074094bfbae9cae780",
      "new_mode": 33188,
      "new_path": "src/com/facebook/buck/parser/buck.py"
    },
    {
      "type": "modify",
      "old_id": "23814b8cf5277162fa6a2dc76c8541def7bc63c5",
      "old_mode": 33188,
      "old_path": "src/com/facebook/buck/parser/buck_test.py",
      "new_id": "d7785bbae1d50cf56a02a827149a0808df0bc45e",
      "new_mode": 33188,
      "new_path": "src/com/facebook/buck/parser/buck_test.py"
    }
  ]
}
