)]}'
{
  "commit": "829d52f2e8ad011c7e9d04e42d196e1b1472dbdb",
  "tree": "17c9553a10e4f6684729213b3b8ce4687b205297",
  "parents": [
    "28104d2c91d3866b6573ac98e543de106314507e"
  ],
  "author": {
    "name": "Alan Donovan",
    "email": "adonovan@google.com",
    "time": "Thu Feb 20 11:57:48 2014 -0500"
  },
  "committer": {
    "name": "Alan Donovan",
    "email": "adonovan@google.com",
    "time": "Thu Feb 20 11:57:48 2014 -0500"
  },
  "message": "go.tools/go/callgraph: simplifications to API.\n\n1) We remove context sensitivity from API.  The pointer analysis is\n   not sufficiently context-sensitive for the context information to\n   be worth exposing.  (The actual analysis precision still benefits\n   from being context-sensitive, though.)  Since all clients would\n   discard the context info, we now do that for them.\n2) Make the graph doubly-linked.  Edges are now shared by the Nodes\n   at both ends of the edge so it\u0027s possible to navigate more easily\n   (e.g. to the callers).\n3) Graph and Node are now concrete, not interfaces.\n\nLess code in every file!\n\nLGTM\u003dcrawshaw\nR\u003dcrawshaw\nCC\u003dgolang-codereviews\nhttps://golang.org/cl/66460043\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f97cc9cd32966cac3aba2ed41e0d7adba8f0aacf",
      "old_mode": 33188,
      "old_path": "go/callgraph/callgraph.go",
      "new_id": "7a1a2abadc22b836ee14121de3bc8d6d4694750c",
      "new_mode": 33188,
      "new_path": "go/callgraph/callgraph.go"
    },
    {
      "type": "modify",
      "old_id": "b6875ee5a20790115d132ca113db8c49e78b66de",
      "old_mode": 33188,
      "old_path": "go/callgraph/util.go",
      "new_id": "d24cc710d00eb1251595d43dd32a5551d13900aa",
      "new_mode": 33188,
      "new_path": "go/callgraph/util.go"
    },
    {
      "type": "modify",
      "old_id": "44875e9fc1fed25df6bee7f45870cb4056626840",
      "old_mode": 33188,
      "old_path": "go/pointer/analysis.go",
      "new_id": "3b4469becb49d383ba11fbdcf4a1d3a169b39b07",
      "new_mode": 33188,
      "new_path": "go/pointer/analysis.go"
    },
    {
      "type": "modify",
      "old_id": "89325812633ada474e40e60e748892126dc5e11d",
      "old_mode": 33188,
      "old_path": "go/pointer/api.go",
      "new_id": "6da20146cb0ec2eab9235c953616eeab38f44338",
      "new_mode": 33188,
      "new_path": "go/pointer/api.go"
    },
    {
      "type": "modify",
      "old_id": "be4d6015b80735ddff311a9a9499dc4d5134f37b",
      "old_mode": 33188,
      "old_path": "go/pointer/callgraph.go",
      "new_id": "6ef415d220ae780b13e326c031a436d35bf3792d",
      "new_mode": 33188,
      "new_path": "go/pointer/callgraph.go"
    },
    {
      "type": "modify",
      "old_id": "7f518afa385c82f060cdece9b2ca1ee58ba21dd1",
      "old_mode": 33188,
      "old_path": "go/pointer/example_test.go",
      "new_id": "dcf167c500f5a8eefbb24bfbcb28636b116b94ba",
      "new_mode": 33188,
      "new_path": "go/pointer/example_test.go"
    },
    {
      "type": "modify",
      "old_id": "1a2bfcf8a2bdaeccf7f330c7728a1661ee4c029f",
      "old_mode": 33188,
      "old_path": "go/pointer/gen.go",
      "new_id": "77cf159638acc1f1f4f369944276a37f18a7b693",
      "new_mode": 33188,
      "new_path": "go/pointer/gen.go"
    },
    {
      "type": "modify",
      "old_id": "c4a5a8501155cf2b7ebc71fda2f45cc739d922d4",
      "old_mode": 33188,
      "old_path": "go/pointer/intrinsics.go",
      "new_id": "69ce878092002b80bc9b955d18e59aa2ee7c55a0",
      "new_mode": 33188,
      "new_path": "go/pointer/intrinsics.go"
    },
    {
      "type": "modify",
      "old_id": "be7c20af54ac196a1bc48ae809df8bd0d62f8161",
      "old_mode": 33188,
      "old_path": "go/pointer/labels.go",
      "new_id": "25f64921c5b16f08ef3d050e7ccd62cf96f19fe7",
      "new_mode": 33188,
      "new_path": "go/pointer/labels.go"
    },
    {
      "type": "modify",
      "old_id": "f8bee71a1b9a4d72780db37d76623d160bc7893b",
      "old_mode": 33188,
      "old_path": "go/pointer/pointer_test.go",
      "new_id": "73fc4ac1a3be550b0fdb73889d2dfd45aaab6846",
      "new_mode": 33188,
      "new_path": "go/pointer/pointer_test.go"
    },
    {
      "type": "modify",
      "old_id": "fc08ce2dc3524f0052bd709f4bde3055a5d9203d",
      "old_mode": 33188,
      "old_path": "oracle/callees.go",
      "new_id": "e9d08854b23932c413465b3fe915e7723059cd16",
      "new_mode": 33188,
      "new_path": "oracle/callees.go"
    },
    {
      "type": "modify",
      "old_id": "d9415da8ebd4d9046a295edf6e6fe4d268db7710",
      "old_mode": 33188,
      "old_path": "oracle/callers.go",
      "new_id": "1ece1a4c142c4ef03fbba4bfbab570d53d838337",
      "new_mode": 33188,
      "new_path": "oracle/callers.go"
    },
    {
      "type": "modify",
      "old_id": "df5970247ffba1d5a873aa2bc3c36204edc76e17",
      "old_mode": 33188,
      "old_path": "oracle/callgraph.go",
      "new_id": "a806e1e07f00fbb3da7e3627c879235027fb519a",
      "new_mode": 33188,
      "new_path": "oracle/callgraph.go"
    },
    {
      "type": "modify",
      "old_id": "225523868675f6b872055cabd556cf04b1f38793",
      "old_mode": 33188,
      "old_path": "oracle/callstack.go",
      "new_id": "7071f94a3b081824aaba4defb8154d32f2005869",
      "new_mode": 33188,
      "new_path": "oracle/callstack.go"
    },
    {
      "type": "modify",
      "old_id": "19b4edb396991fa737de0c2a1ee8e5b6b253db18",
      "old_mode": 33188,
      "old_path": "oracle/oracle_test.go",
      "new_id": "8fcda5e3c172c44144eb6340e17065575d8036b5",
      "new_mode": 33188,
      "new_path": "oracle/oracle_test.go"
    },
    {
      "type": "modify",
      "old_id": "e2aaaf5a9e76c1d7340259d6bac4abeb5da9d6e6",
      "old_mode": 33188,
      "old_path": "oracle/testdata/src/main/callgraph-json.golden",
      "new_id": "cde494af4fc33a5f018650b9844f20a6f4accdf6",
      "new_mode": 33188,
      "new_path": "oracle/testdata/src/main/callgraph-json.golden"
    }
  ]
}
