)]}'
{
  "commit": "e28c0ab84c7967e10cc3cd5333560c54653084bd",
  "tree": "9a66b0192d9049d16956218ca3bafc65af1de63f",
  "parents": [
    "bbf3e421ed8b2b431a72cd3ab4ba591dc8833634"
  ],
  "author": {
    "name": "elenairina",
    "email": "elenairina@google.com",
    "time": "Mon Jun 11 08:25:41 2018 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-piper@google.com",
    "time": "Mon Jun 11 08:27:22 2018 -0700"
  },
  "message": "Implement LcovMerger.\n\nLcovMerger is a tool that merges all the intermediate lcov tracefiles (with .dat extension) found under a coverage directory and prints the merged tracefile to a given output file.\n\nA custom implementation for merging lcov tracefiles is needed because the merging functionality of lcov itself is very slow.\n\nLcovMerger is required to get a single coverage report (lcov tracefile) from a bazel coverage command that executes multiple tests.\n\nATM LcovMerger is only invoked by tools/test/collect_coverage.sh that collects and merges the tracefiles from a single test invocation. It will also be used from a CoverageReportAction.\n\nProgress on #5246.\n\nPiperOrigin-RevId: 200054506\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ebb64f29caa2e812e298c455ae14f38543b918bf",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java",
      "new_id": "dbda63a19f23aa8787c691cf5a63eb924fc43f4a",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java"
    },
    {
      "type": "modify",
      "old_id": "3b7579909b86967507541dd1072f958795724f59",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java",
      "new_id": "d64c9b16a32a820f7b741edcef52d6875bb09d26",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java"
    },
    {
      "type": "modify",
      "old_id": "54e4b30603f734369cb464890741b67ae55e1c13",
      "old_mode": 33261,
      "old_path": "src/test/shell/bazel/bazel_coverage_test.sh",
      "new_id": "17f1f7f77da94662663a7b82fbf135e6cdaefd9a",
      "new_mode": 33261,
      "new_path": "src/test/shell/bazel/bazel_coverage_test.sh"
    },
    {
      "type": "modify",
      "old_id": "0f28085e75a666219341b4d3465c7783d22ba341",
      "old_mode": 33188,
      "old_path": "tools/BUILD",
      "new_id": "84e96b1605c9137dae930dfb10b481b3c669cda7",
      "new_mode": 33188,
      "new_path": "tools/BUILD"
    },
    {
      "type": "modify",
      "old_id": "bc70912a07a5201fc41c831d9731ac4b8b947306",
      "old_mode": 33188,
      "old_path": "tools/test/BUILD",
      "new_id": "3f7d28b72a0587b3b53c839b5ae069db7be1756c",
      "new_mode": 33188,
      "new_path": "tools/test/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b7d4d7b08c6018b69025dbe855f6c5fa2706d7f4",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3b469ffb25d8c41a360da2b528b78345b15eac63",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BranchCoverage.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "82733aa84a912b71daf9f55bd65bd81cfc2576fd",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/java/com/google/devtools/lcovmerger/Coverage.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "83c6ce5f85e352970e5f08c89bb92b306150325f",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/java/com/google/devtools/lcovmerger/LcovConstants.java"
    },
    {
      "type": "delete",
      "old_id": "ebad7eb5797973c42c00f3dc2506a59ba42fbc6f",
      "old_mode": 33188,
      "old_path": "tools/test/LcovMerger/java/com/google/devtools/lcovmerger/LcovMerger.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ec6a3ee247e416caddb17158a4529e7d9c33c901",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/java/com/google/devtools/lcovmerger/LcovParser.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "59737b991a456df83e715c516c7d82a1e9a0d39c",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/java/com/google/devtools/lcovmerger/LcovPrinter.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4e163e241677a1aeab137097d159a0524ccc1cea",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/java/com/google/devtools/lcovmerger/LineCoverage.java"
    },
    {
      "type": "modify",
      "old_id": "e5bf197c3aa23b700a70f431e70231b35a2f652a",
      "old_mode": 33188,
      "old_path": "tools/test/LcovMerger/java/com/google/devtools/lcovmerger/Main.java",
      "new_id": "5bac98e80d8c3b165a70131aafd2f3856a919b44",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/java/com/google/devtools/lcovmerger/Main.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e293a789c069b9dfbd1405fd8fdad72ca8be11f",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/java/com/google/devtools/lcovmerger/SourceFileCoverage.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "daf81b51d3c9ea095f5aa5a153d4a4a382362b8f",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bd527e52b82d9cbd2e5e36694f692d7a7f5adf01",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/BranchCoverageTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "724a2095a5a5ddfa41d42f78416b9cb575bfaefc",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/CoverageTest.java"
    },
    {
      "type": "delete",
      "old_id": "8460b7eb5c1a92ab361b6a67b0f69056c1cc5573",
      "old_mode": 33188,
      "old_path": "tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/LcovMergerTest.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "abaed3186df17ac4ccd4cc77761a5fbf6b945c74",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/LcovMergerTestUtils.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e94fb4091c112b062508f30fa85a9b1759e52a0c",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/LcovParserTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3844730f739b45d666b2627f0cebdc2540e6ac82",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/LcovPrinterTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b398f3442e1a69b91384d4fc0f80b12187922565",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/LineCoverageTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "07be4215e52d0d6db9b45317005859a0c7aa31a0",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/MainTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9b22297e4e43adabb76d349e327c79c1d8eb97b8",
      "new_mode": 33188,
      "new_path": "tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/SourceFileCoverageTest.java"
    }
  ]
}
