)]}'
{
  "commit": "9747d149f6ef259ac78fafa077572574137fc382",
  "tree": "ff230d74640d5d29198d7ea96c51a1a2b7382228",
  "parents": [
    "a9f1a50154c7873b8152842dfd1392badeee55d6"
  ],
  "author": {
    "name": "Sylvain Defresne",
    "email": "sdefresne@chromium.org",
    "time": "Tue Apr 28 16:49:56 2026 +0200"
  },
  "committer": {
    "name": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Apr 28 08:07:00 2026 -0700"
  },
  "message": "[apple] Optimise enumeration of additional files for Xcode project\n\nInstead of enumerating the files by traversing the filesystem for each\npattern, first perform the enumeration and filter the file names using\nthe patterns. This avoid traversing the filesystem multiple time which\nis the slowest operation.\n\nAdditionally add a --enumerate-files-with-git command-line argument to\nuse `git ls-files ...` to enumerate the files without traversing the\nfilesystem which is even faster (but will omit untracked files).\n\nBug: none\nChange-Id: Ie9719fe33f8ab1ad79efa74553e5194f72eaaaf4\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/22300\nReviewed-by: David Turner \u003cdigit@google.com\u003e\nCommit-Queue: Sylvain Defresne \u003csdefresne@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2a7e7318d7ee59c25134ddaa2c72d3e47821bfb7",
      "old_mode": 33261,
      "old_path": "build/gen.py",
      "new_id": "44f92b963bc2eb678cabb4cc9c6fcb7ffbda1692",
      "new_mode": 33261,
      "new_path": "build/gen.py"
    },
    {
      "type": "modify",
      "old_id": "41d52b8afdda41a0ee1304394efe91e59b9e000c",
      "old_mode": 33188,
      "old_path": "src/base/files/file_enumerator_posix.cc",
      "new_id": "73ba861caa2e4c59501a2e85911214a218152bf7",
      "new_mode": 33188,
      "new_path": "src/base/files/file_enumerator_posix.cc"
    },
    {
      "type": "modify",
      "old_id": "0e8f6dce99d4faef549273f92a7aa03a40457163",
      "old_mode": 33188,
      "old_path": "src/base/files/file_enumerator_win.cc",
      "new_id": "f8ab469a138adceaa9a808d8632ad11575e62c19",
      "new_mode": 33188,
      "new_path": "src/base/files/file_enumerator_win.cc"
    },
    {
      "type": "modify",
      "old_id": "26bf011d1f1f743e67f07eae7e57972b9b11204d",
      "old_mode": 33188,
      "old_path": "src/base/files/file_path.h",
      "new_id": "f18c227c6e0fd786a631a1002b74ea39f64c062b",
      "new_mode": 33188,
      "new_path": "src/base/files/file_path.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3583737d334fec64d41b0acf271081c0dece312d",
      "new_mode": 33188,
      "new_path": "src/base/files/file_path_posix.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "64a7b7e9fa13c907d273ad33415e4904b6a2162d",
      "new_mode": 33188,
      "new_path": "src/base/files/file_path_win.cc"
    },
    {
      "type": "modify",
      "old_id": "4081695f38b7e41c9e544bb334a7b28c610ef4c6",
      "old_mode": 33188,
      "old_path": "src/gn/switches.cc",
      "new_id": "54427767e4772056665d1f5e0e883712ab2c9483",
      "new_mode": 33188,
      "new_path": "src/gn/switches.cc"
    },
    {
      "type": "modify",
      "old_id": "5fe34e7df6a14ca4b7d01cc176758bc959bb2580",
      "old_mode": 33188,
      "old_path": "src/gn/switches.h",
      "new_id": "2c7c42bb84246ab53b05a95c3fca50288526eaea",
      "new_mode": 33188,
      "new_path": "src/gn/switches.h"
    },
    {
      "type": "modify",
      "old_id": "e834b876de6113d702ea33f52e836479cd9c84d3",
      "old_mode": 33188,
      "old_path": "src/gn/xcode_writer.cc",
      "new_id": "489505706e6da8ca3c65e6c6ceaff02873627973",
      "new_mode": 33188,
      "new_path": "src/gn/xcode_writer.cc"
    }
  ]
}
