)]}'
{
  "commit": "44f123fe7574190beb0f49093bf2ee7c82a7dbf9",
  "tree": "f9e073e480113dc16d71bb25f1f688422d800fd5",
  "parents": [
    "6bf9e131d05a3f41f524f661680fd15b2aa578dd"
  ],
  "author": {
    "name": "ssid",
    "email": "ssid@google.com",
    "time": "Fri Jan 08 16:04:41 2021 -0800"
  },
  "committer": {
    "name": "ssid",
    "email": "ssid@google.com",
    "time": "Fri Jan 08 16:04:41 2021 -0800"
  },
  "message": "Make preceding_flow and following_flow follow relative slices\n\nBased on altimin@\u0027s cl:\nhttps://android-review.googlesource.com/c/platform/external/perfetto/+/1484245\n\nThis changes the preceding_flows() SQL function to follow flows incoming\nflows by checking all the ancestors of the slices that are followed. The\nfollowing_flows() function will follow all the descendants of the slices\nfollowed. Removes connected_flow function because it can be trivially\nimplemented in SQL. The connected_flows() function is renamed to\ndirectly_connected_flows() and will follow flows without relatives,\nand this is kept as is for the UI to show flows.\n\nChange-Id: I941a7e9bd1bd8328108fa0091906c546e181f9ec",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "49e2f5e7bf30b1148acea8b4b60def0e87b377c1",
      "old_mode": 33188,
      "old_path": "docs/analysis/trace-processor.md",
      "new_id": "dad283213aafdd9e763e516a640ae086111707d7",
      "new_mode": 33188,
      "new_path": "docs/analysis/trace-processor.md"
    },
    {
      "type": "modify",
      "old_id": "3cb6356d8bace1c1523a344dc8806f3d864f737b",
      "old_mode": 33188,
      "old_path": "src/trace_processor/dynamic/ancestor_generator.cc",
      "new_id": "280c5bc739824b384a779b0bf0e1fb976e57e9e3",
      "new_mode": 33188,
      "new_path": "src/trace_processor/dynamic/ancestor_generator.cc"
    },
    {
      "type": "modify",
      "old_id": "e39d25d46984a8b82fa8637baef75ab9b1767301",
      "old_mode": 33188,
      "old_path": "src/trace_processor/dynamic/ancestor_generator.h",
      "new_id": "2b3dde1893875a6a158333e26469d710689975a3",
      "new_mode": 33188,
      "new_path": "src/trace_processor/dynamic/ancestor_generator.h"
    },
    {
      "type": "modify",
      "old_id": "d2e0a9ed6197e175a488d3c10f76964d3576b7cb",
      "old_mode": 33188,
      "old_path": "src/trace_processor/dynamic/connected_flow_generator.cc",
      "new_id": "2216061e8d1fe7663127a1a42e652092664be57a",
      "new_mode": 33188,
      "new_path": "src/trace_processor/dynamic/connected_flow_generator.cc"
    },
    {
      "type": "modify",
      "old_id": "27715e1945d10c569b329b8fdb31601f55273d55",
      "old_mode": 33188,
      "old_path": "src/trace_processor/dynamic/connected_flow_generator.h",
      "new_id": "e6d01b30280a26181393c33feb2b92d26172db0d",
      "new_mode": 33188,
      "new_path": "src/trace_processor/dynamic/connected_flow_generator.h"
    },
    {
      "type": "modify",
      "old_id": "3eefcc233e73f6f6e93bedf35c51fdb1c8f5f71c",
      "old_mode": 33188,
      "old_path": "src/trace_processor/dynamic/descendant_slice_generator.cc",
      "new_id": "d42a6a92a6bbfd7d185cb80fdd1f7b7b03ef50a5",
      "new_mode": 33188,
      "new_path": "src/trace_processor/dynamic/descendant_slice_generator.cc"
    },
    {
      "type": "modify",
      "old_id": "260c2006135ff62ce05a80ab6bc20fdc02b1e43d",
      "old_mode": 33188,
      "old_path": "src/trace_processor/dynamic/descendant_slice_generator.h",
      "new_id": "9900d165c6dfe34446e7b806fc95acad3d8e5d09",
      "new_mode": 33188,
      "new_path": "src/trace_processor/dynamic/descendant_slice_generator.h"
    },
    {
      "type": "modify",
      "old_id": "1fc79f65131f45c7f3f316c7acd809fdcecc5bbd",
      "old_mode": 33188,
      "old_path": "src/trace_processor/trace_processor_impl.cc",
      "new_id": "ac0d2eadbc5b79e981dc96655f2c99fb0936d9d4",
      "new_mode": 33188,
      "new_path": "src/trace_processor/trace_processor_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "8c64ff370b411beaa25e76610657c35e6de61db3",
      "old_mode": 33188,
      "old_path": "test/trace_processor/dynamic/connected_flow.out",
      "new_id": "f64783778cf4198c2af0564a933c84d332b750a0",
      "new_mode": 33188,
      "new_path": "test/trace_processor/dynamic/connected_flow.out"
    },
    {
      "type": "modify",
      "old_id": "22e06928a94782ab7acf7d146a5a8a93f5ea09be",
      "old_mode": 33188,
      "old_path": "test/trace_processor/dynamic/connected_flow.sql",
      "new_id": "96f079fc038bb8e23af38be8aafebfa3e992a879",
      "new_mode": 33188,
      "new_path": "test/trace_processor/dynamic/connected_flow.sql"
    },
    {
      "type": "modify",
      "old_id": "ed748bc677719533a4692f2e6b9ffee0897f343c",
      "old_mode": 33188,
      "old_path": "test/trace_processor/dynamic/connected_flow_data.json",
      "new_id": "60680897d8f55196e86ccdb33e112551934b08f6",
      "new_mode": 33188,
      "new_path": "test/trace_processor/dynamic/connected_flow_data.json"
    },
    {
      "type": "modify",
      "old_id": "86c50da4d9ff3e81c27f48ec2aabf0c593e088cf",
      "old_mode": 33188,
      "old_path": "ui/src/controller/flow_events_controller.ts",
      "new_id": "c459f8f46dc520b7394a4b2a9955ac641b9227c5",
      "new_mode": 33188,
      "new_path": "ui/src/controller/flow_events_controller.ts"
    }
  ]
}
