)]}'
{
  "commit": "d7299422ae593e4b53a7f1e9526a66512039ece1",
  "tree": "84a63ec8013e93bde092c2f0bf157efb054db981",
  "parents": [
    "3f087a8dd94c1e54eb8cda34c4923382607413a8"
  ],
  "author": {
    "name": "kimhappy",
    "email": "hwanhee.kim@laplacian.cc",
    "time": "Thu Aug 27 03:04:21 2026 +0900"
  },
  "committer": {
    "name": "gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Aug 27 16:22:54 2026 -0700"
  },
  "message": "sync: skip submodules removed from their parent\n\nThe submodules to sync are derived from their parent before it is\nfetched, so one that the parent\u0027s new revision no longer holds a gitlink\nfor is still synced. Interleaved sync then fails to check it out,\nbecause `git submodule init` no longer knows that path:\n\n  error: Cannot checkout a/c\n  error: pathspec \u0027.../a/c\u0027 did not match any file(s) known to git\n\nReport such submodules while the gitlinks are read again, and leave them\nout of the fetch and of the checkout, so the usual project list update\nremoves them from the working tree. Phased sync already left them out of\nthe checkout, but still fetched them.\n\nNothing is reported as removed while the gitlinks of a parent cannot be\nread, since a missing gitlink cannot be told apart from a fetch that did\nnot happen.\n\nBug: 550074864\nChange-Id: Ia429b35c12758a68e4df73665e5512a201af658a\nSigned-off-by: kimhappy \u003chwanhee.kim@laplacian.cc\u003e\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/621681\nReviewed-by: Gavin Mak \u003cgavinmak@google.com\u003e\nReviewed-by: Brian Gan \u003cbrgan@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e7133007023349855a05317fa194bfe3d47a6d8d",
      "old_mode": 33188,
      "old_path": "subcmds/sync.py",
      "new_id": "bedc1f1b922e320cb5635ca5f8d4abba2781be6c",
      "new_mode": 33188,
      "new_path": "subcmds/sync.py"
    },
    {
      "type": "modify",
      "old_id": "e854a19406a16cc133ae6f5a0e9f978f275dd9d5",
      "old_mode": 33188,
      "old_path": "tests/test_subcmds_sync.py",
      "new_id": "b921069d0acb81f160454d72a52ce320a0cf764c",
      "new_mode": 33188,
      "new_path": "tests/test_subcmds_sync.py"
    }
  ]
}
