)]}'
{
  "commit": "252674db046b46704674aa2558a713558d3b905e",
  "tree": "7654819d87e6e76515a7ba81daf0f3b052f96cac",
  "parents": [
    "be0c06cb537474b963cf264b7bb762fc0f8dffdf"
  ],
  "author": {
    "name": "Robert Sesek",
    "email": "rsesek@chromium.org",
    "time": "Fri May 10 14:08:52 2019 -0400"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Fri May 10 18:43:44 2019 +0000"
  },
  "message": "Let source_target_relative be a valid substitution for bundle_data.\n\nThis helps address the situation where one needs to package a bundle not\nproduced by the build\u0027s create_bundle rule, like a third-party\nframework, inside another bundle that is produced by the build. If a\nbundle_data rule only pointed to the outer directory of that third-party\nframework, any changes to the inner components of the bundle would not\ntrigger a re-copy.\n\nThe {{source_target_relative}} is useful because it lets one define a\nbundle_data target at the same level as the third-party bundle, list\nits entire contents in |sources|, and have the bundle\u0027s folder\nstructure preserved.\n\nWith the existing set of valid substitution patterns, a bundle_data\nrule would need to be created for each level of folder structure in\nthe third-party bundle.\n\nBug: chromium:955936, chromium:608382\nChange-Id: I6e32a98ea607fb95d73ec707c7c8e9a39ee1e9d0\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/4860\nReviewed-by: Nico Weber \u003cthakis@chromium.org\u003e\nCommit-Queue: Petr Hosek \u003cphosek@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fe23b196b849acb9de7497714f11edb990d54084",
      "old_mode": 33188,
      "old_path": "docs/reference.md",
      "new_id": "1d2ea498001b582cff19fcb8f071e049414dd0ed",
      "new_mode": 33188,
      "new_path": "docs/reference.md"
    },
    {
      "type": "modify",
      "old_id": "f38013e2fa787bab563957e1c7422c6d2a10514d",
      "old_mode": 33188,
      "old_path": "tools/gn/substitution_type.cc",
      "new_id": "ae680c9d1ddefb8218e6e0462c2731303a2bfda9",
      "new_mode": 33188,
      "new_path": "tools/gn/substitution_type.cc"
    },
    {
      "type": "modify",
      "old_id": "c8bc70fd0d025f5b4ea0141c9ecd4a4e83d59334",
      "old_mode": 33188,
      "old_path": "tools/gn/substitution_writer.cc",
      "new_id": "b26579b03bb258ddf0390a050ec92cb39bb79eb5",
      "new_mode": 33188,
      "new_path": "tools/gn/substitution_writer.cc"
    }
  ]
}
