)]}'
{
  "commit": "678c852b33974ca573a382f3a4392c007fcefe62",
  "tree": "44c5555782553ce761d38e97a08ebe754d9407fc",
  "parents": [
    "ecb15d3ace2bca89777c0f14c79cfe76fc0e1303"
  ],
  "author": {
    "name": "Klaus Aehlig",
    "email": "aehlig@google.com",
    "time": "Fri Jul 14 12:21:56 2017 +0200"
  },
  "committer": {
    "name": "László Csomor",
    "email": "laszlocsomor@google.com",
    "time": "Fri Jul 14 12:55:18 2017 +0200"
  },
  "message": "experimentalUI: agressively buffer\n\nTo update the progress bar, we first have to remove it and then write the\nnew one. For this to look smooth, the control sequence removing the old progress\nbar and the characters of the new progress bar have to arrive \"in one go\" at the\n(actual) terminal. As AnsiTerminal sends each control sequence as a separate write\nto the underlying stream, we have to buffer the underlying stream. Therefore,\nif the experimental UI is used, buffer that stream unconditionally until flushed,\nand not by line. For the experimental UI this is save, as it flushes the stream\nappropriately.\n\nFor the old UI, we keep the line buffering, as the old UI relies on an implicit flush\nwhenever a new-line character is written.\n\nChange-Id: I3a914e4b93ce17c3de05df0d860cf98849c3b4a1\nPiperOrigin-RevId: 161935218\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fc84ebdb483119703be689022f9bf9f59fe164d7",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java",
      "new_id": "cbd8e564ec715494eff16722d435a99bb0889346",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcher.java"
    }
  ]
}
