)]}'
{
  "commit": "f86facc133ff48a3c2951282680139504cd15a22",
  "tree": "60cce661bd4f175d2f28ecdd2cbb638ec86d3e0c",
  "parents": [
    "259c9e8014ad960985c0ed99db2a879cdd2ac301"
  ],
  "author": {
    "name": "Laszlo Csomor",
    "email": "laszlocsomor@google.com",
    "time": "Mon Jul 03 04:15:24 2017 -0400"
  },
  "committer": {
    "name": "John Cater",
    "email": "jcater@google.com",
    "time": "Wed Jul 05 10:54:53 2017 -0400"
  },
  "message": "Bazel, Windows: sh_binary now builds a .cmd file\n\nOn Linux/MacOS, sh_binary creates an output file\nwith the same name as the rule. The file is a\nsymlink pointing to the main script of the rule\n(sh_binary.srcs only allows one file.)\n\nOn Windows sh_binary also creates an output file\ncalled the same as the rule, but it\u0027s a copy of\nthe main script file (due to lack of symlink\nsupport on Windows). However the rule now also\ncreates the \u003crulename\u003e.cmd output, which is a\nwrapper script similar to the\njava_binary-generated launcher.\n\nIf however the sh_binary rule\u0027s name ends with\n\".exe\", \".cmd\", or \".bat\", and its main file also\nends with the same extension, then sh_binary will\nnot create the launcher .cmd file, and will copy\nthe main file to the output tree instead.\n\nChange-Id: Idcf92ce3bb254bd6d9a1fb5c659a52220efe19aa\nPiperOrigin-RevId: 160805720\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2a469a4a55ca56d366d6ccbd68098efc0fd15a43",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/BUILD",
      "new_id": "19158cfcd00cb2999c8ca9da4ded3bac76dd0c15",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/BUILD"
    },
    {
      "type": "modify",
      "old_id": "6da83aaa1291098224dde4cdb799ac856a7be15a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/sh/ShBinary.java",
      "new_id": "66b0ec4a1dd82215d6957240f19e4de2227a5186",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/sh/ShBinary.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5c30e7fb8ce3517fb6df6827ab8298c45cc15943",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/rules/sh/sh_stub_template_windows.txt"
    },
    {
      "type": "modify",
      "old_id": "93e273c923b264c1e8d697f6433a1e6aebc2bc3d",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/rules/android/AndroidMultidexBaseTest.java",
      "new_id": "7d4d6ec7a5438b79c725cf46149236fbd7a97bdd",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/rules/android/AndroidMultidexBaseTest.java"
    },
    {
      "type": "modify",
      "old_id": "dff588242e3ab342edef119d74c82d411750b18e",
      "old_mode": 33188,
      "old_path": "src/test/py/bazel/launcher_script_test.py",
      "new_id": "38bc557f9120e9ef2d826a267f85cd56603da250",
      "new_mode": 33188,
      "new_path": "src/test/py/bazel/launcher_script_test.py"
    },
    {
      "type": "modify",
      "old_id": "a5def619a8c6e9b8c8f75793251d299d77fba960",
      "old_mode": 33188,
      "old_path": "src/test/py/bazel/test_base.py",
      "new_id": "135977beda25d1b4390278837f47bc893df009cd",
      "new_mode": 33188,
      "new_path": "src/test/py/bazel/test_base.py"
    }
  ]
}
