)]}'
{
  "commit": "69a8d7205287bedf3a6140ec9327e2fad1758c22",
  "tree": "b7ca092790bfdea046bdfe86e592f7c7730c6012",
  "parents": [
    "ac99ba260d22de52cd4de0163fa854d86d655213"
  ],
  "author": {
    "name": "Julio Merino",
    "email": "jmmv@google.com",
    "time": "Tue Sep 13 22:29:39 2016 +0000"
  },
  "committer": {
    "name": "Dmitry Lomov",
    "email": "dslomov@google.com",
    "time": "Wed Sep 14 09:36:15 2016 +0000"
  },
  "message": "Move the GetOutputRoot function to the WorkspaceLayout module.\n\nThe result value of GetOutputRoot does not depend on the startup\noptions: it only depends on the environment and/or the hardcoded values\nfor Bazel and Blaze.  Therefore, put it in the WorkspaceLayout module\njust as we did for all other similar functions.\n\nThe fact that GetOutputRoot was part of BlazeStartupOptions was the root\ncause behind the rollback of commit 4a45d92130a6b1306a3840d006df165b8040a6cf: in particular, that CL\nsilently added a virtual call to the GetOutputRoot method from the\nconstructor of the superclass, and this invokes undefined behavior\nbecause the class has not yet been fully constructed.  This caused Blaze\nto have incorrect values for the output_root.  By moving the function\nout, we\u0027ll be able to roll that CL forward as it originally was.\n\nAs part of this change, add unit tests for the value of output_root\nunder various scenarios.  These would have caught the discrepancy\nintroduced by that CL.\n\n--\nMOS_MIGRATED_REVID\u003d133056251\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "01cdb5d99997a7ef110f68af6c920146e774b46f",
      "old_mode": 33188,
      "old_path": "src/main/cpp/blaze_startup_options.cc",
      "new_id": "2d5d8b8bfec174df05c0b1f243184bb28b429a03",
      "new_mode": 33188,
      "new_path": "src/main/cpp/blaze_startup_options.cc"
    },
    {
      "type": "modify",
      "old_id": "17982abd172c50158386390dea71ff65fde5ef69",
      "old_mode": 33188,
      "old_path": "src/main/cpp/blaze_startup_options.h",
      "new_id": "25183e0da6a1abccd352310d008d3019f8de28c3",
      "new_mode": 33188,
      "new_path": "src/main/cpp/blaze_startup_options.h"
    },
    {
      "type": "modify",
      "old_id": "449907b4a2a31adce1930dd2ee31425840584f19",
      "old_mode": 33188,
      "old_path": "src/main/cpp/blaze_startup_options_common.cc",
      "new_id": "8250152cdbc63dffccd1536ad5ceccbe0b670c46",
      "new_mode": 33188,
      "new_path": "src/main/cpp/blaze_startup_options_common.cc"
    },
    {
      "type": "modify",
      "old_id": "a562838dcbd51bd11e48c23c794e56573d9b7a5c",
      "old_mode": 33188,
      "old_path": "src/main/cpp/workspace_layout.cc",
      "new_id": "2ea04ce14dc9da2a2b1baf049befeca24c14805f",
      "new_mode": 33188,
      "new_path": "src/main/cpp/workspace_layout.cc"
    },
    {
      "type": "modify",
      "old_id": "33bf81c98206293471bf6ea5be606d3bbb56b7f0",
      "old_mode": 33188,
      "old_path": "src/main/cpp/workspace_layout.h",
      "new_id": "cdcf5a02ad54a71e473c0c4a8adf092552dbea9b",
      "new_mode": 33188,
      "new_path": "src/main/cpp/workspace_layout.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8729fdd3497c3737c0979962a68aaac8cfab1d43",
      "new_mode": 33188,
      "new_path": "src/test/cpp/blaze_startup_options_test.cc"
    }
  ]
}
