)]}'
{
  "commit": "40aac3f15d34b3469e80b0c086a37bd069af2d6e",
  "tree": "ce8bad75466fa08f0b7c134be165a1785c696f8b",
  "parents": [
    "64d35867ca0a1088f13de8f4ccaf1a5687d7f1ce"
  ],
  "author": {
    "name": "Shezan Baig",
    "email": "sbaig1@bloomberg.net",
    "time": "Mon Jan 05 00:47:14 2026 -0500"
  },
  "committer": {
    "name": "GN LUCI",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jan 05 01:45:19 2026 -0800"
  },
  "message": "win: Use relative path for python in ninja files if possible\n\nOn Windows, `BuildSettings::python_path` returns the absolute path to\nthe script executable, even if it is within the root directory.  This\nmakes the ninja files non-portable because they include the absolute\npath on the machine where `gn` was run.\n\nThis commit makes it such that if python is within the root directory,\nwe will use a relative path to it from the build directory when\ngenerating the ninja rules.\n\nThis will allow us to setup siso rules to execute python scripts on\nremote machines for Windows.\n\nNote that we need to resolve the python path back to an absolute path when executing scripts within GN.\n\nChange-Id: I1a1c2895efd868fb4cc6c9b8e2c61167bfe59211\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/20240\nReviewed-by: Takuto Ikuta \u003ctikuta@google.com\u003e\nCommit-Queue: David Turner \u003cdigit@google.com\u003e\nReviewed-by: David Turner \u003cdigit@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6a2649511d073b053f3aff205e6d0b44459b0c9d",
      "old_mode": 33188,
      "old_path": "src/gn/build_settings.cc",
      "new_id": "6d66376695c4c4b5565f0d3f6661974bcae434d6",
      "new_mode": 33188,
      "new_path": "src/gn/build_settings.cc"
    },
    {
      "type": "modify",
      "old_id": "e21851adaf7b2400cbad09caee24960c80d5ed2c",
      "old_mode": 33188,
      "old_path": "src/gn/build_settings.h",
      "new_id": "6c482845608dbab9722fc92d383c9131e0a7d229",
      "new_mode": 33188,
      "new_path": "src/gn/build_settings.h"
    },
    {
      "type": "modify",
      "old_id": "6f8bdf5bfd99f7676bf4b7613552734bcb0dff4e",
      "old_mode": 33188,
      "old_path": "src/gn/function_exec_script.cc",
      "new_id": "01cdb66136984ee5f27598d696184ec7df2537a0",
      "new_mode": 33188,
      "new_path": "src/gn/function_exec_script.cc"
    },
    {
      "type": "modify",
      "old_id": "c54ad72e1b6f3f4251914ed5abbfc90071ef930c",
      "old_mode": 33188,
      "old_path": "src/gn/invoke_python.cc",
      "new_id": "3f5385f6b55eb3b6f7f3521ee32fdd86bd739195",
      "new_mode": 33188,
      "new_path": "src/gn/invoke_python.cc"
    },
    {
      "type": "modify",
      "old_id": "4b58e2cfc448f00942aa7d98f3b6e1c4d3c28624",
      "old_mode": 33188,
      "old_path": "src/gn/json_project_writer_unittest.cc",
      "new_id": "770e7cf19af371292cc8326f12e40353afb3b946",
      "new_mode": 33188,
      "new_path": "src/gn/json_project_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "9b7c76f2794d1624dbcf290de38925232e380336",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_action_target_writer_unittest.cc",
      "new_id": "8bcea9389661efb042f56866c65a510d4d296b9e",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_action_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "49830ae93c1c33f37cc845ce9a2ff1036530f201",
      "old_mode": 33188,
      "old_path": "src/gn/setup.cc",
      "new_id": "b29e2ff0abdb5bf6585a426f06a2b35c612432d5",
      "new_mode": 33188,
      "new_path": "src/gn/setup.cc"
    },
    {
      "type": "modify",
      "old_id": "d9ace51e2a2467ad5144e1524078db84d5317b5d",
      "old_mode": 33188,
      "old_path": "src/gn/setup_unittest.cc",
      "new_id": "547c282afaa921cb165652694872c57cdd9852d7",
      "new_mode": 33188,
      "new_path": "src/gn/setup_unittest.cc"
    }
  ]
}
