)]}'
{
  "commit": "d53a4278f5156d57d71fe401ba87efcd8435886a",
  "tree": "18c686d155c7b22ec5ca842e9b1ea8fbe59bb449",
  "parents": [
    "5d4149f32e3eb776ab3575a0d8db1ca51d6bb1b2"
  ],
  "author": {
    "name": "Rahul Yadav",
    "email": "yadavrah@google.com",
    "time": "Tue Aug 11 09:38:40 2026 +0000"
  },
  "committer": {
    "name": "gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Oct 01 03:13:33 2026 -0700"
  },
  "message": "sync: Support manifest-driven default smart sync\n\nAdd support for enabling smart sync by default via the\nsync-smartsync\u003d\"true\" attribute on the manifest \u003cdefault\u003e element.\n\nWhen sync-smartsync is set to true in the manifest defaults:\n- Plain `repo sync` triggers Smart Sync automatically.\n- If that implicit Smart Sync fails (manifest server unreachable, or\n  the returned manifest cannot be parsed), repo silently falls back to\n  a regular ToT sync. The reason is logged with --verbose.\n- `--no-smart-sync` CLI flag overrides the manifest default and\n  syncs to ToT.\n- Passing explicit `-s` / `--smart-sync` forces Smart Sync as before,\n  and its failures are still fatal.\n- `-t`, `--smart-tag`, `-m`, `--manifest-name`, and\n  `--superproject-revision` disable the default smart sync.\n- `-l` / `--local-only` and `--no-manifest-update` skip the manifest\n  server and reuse the existing smart_sync_override.xml, if any.\n\nUpdate docs, completion, regenerate man pages, and add tests for XML\nparsing, serialization, CLI option resolution, and the fallback and\nreuse paths.\n\nBug: 545137090\nChange-Id: If75569c58dd525d170e9801e70ccbf02206a52f2\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/617641\nTested-by: Rahul Yadav \u003cyadavrah@google.com\u003e\nCommit-Queue: Rahul Yadav \u003cyadavrah@google.com\u003e\nReviewed-by: Gavin Mak \u003cgavinmak@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ac82ce78d135d0cf78f1f1536aee2b4e466769d2",
      "old_mode": 33188,
      "old_path": "completion.zsh",
      "new_id": "23b7db1498f5628788ba03f4441a1ab3f5c9c01d",
      "new_mode": 33188,
      "new_path": "completion.zsh"
    },
    {
      "type": "modify",
      "old_id": "e128a65b39352c681c1c184934dfedf8e7f3b3cc",
      "old_mode": 33188,
      "old_path": "docs/manifest-format.md",
      "new_id": "18420b8ea3c2a7d781dc56ac7968ac000d959495",
      "new_mode": 33188,
      "new_path": "docs/manifest-format.md"
    },
    {
      "type": "modify",
      "old_id": "9f659454d9d9ea083fa6b39068008b9bae150e25",
      "old_mode": 33188,
      "old_path": "docs/smart-sync.md",
      "new_id": "99270a5505ffcafceb1154e1ef8f86e5ec6eaa29",
      "new_mode": 33188,
      "new_path": "docs/smart-sync.md"
    },
    {
      "type": "modify",
      "old_id": "903be253451e9244672d4ac8812a959b8d912d43",
      "old_mode": 33188,
      "old_path": "man/repo-manifest.1",
      "new_id": "49923b9d376604d84ffa20c22f2d9727301de5bf",
      "new_mode": 33188,
      "new_path": "man/repo-manifest.1"
    },
    {
      "type": "modify",
      "old_id": "2767ac3d89946f0a8372be1ce5ea2e39fa70c3ae",
      "old_mode": 33188,
      "old_path": "man/repo-sync.1",
      "new_id": "b033a906f019b1083eaf9c1884b67eb8395ca90f",
      "new_mode": 33188,
      "new_path": "man/repo-sync.1"
    },
    {
      "type": "modify",
      "old_id": "0e80435a50b0d4f83a7484c41f9658b8e681f569",
      "old_mode": 33188,
      "old_path": "manifest_xml.py",
      "new_id": "c3d6fe011ae23cc07eea8db9e930229154b74c29",
      "new_mode": 33188,
      "new_path": "manifest_xml.py"
    },
    {
      "type": "modify",
      "old_id": "0739c822d96070e4380fddf2d19e852995627ef1",
      "old_mode": 33188,
      "old_path": "subcmds/sync.py",
      "new_id": "96fb485acdc07bb3872b8e2773fa16ff650497cc",
      "new_mode": 33188,
      "new_path": "subcmds/sync.py"
    },
    {
      "type": "modify",
      "old_id": "3f3f50a7f082ea1da9650170c168dc6d94c28582",
      "old_mode": 33188,
      "old_path": "tests/test_manifest_xml.py",
      "new_id": "a04972a1de41976c7cfb0bbc14665e68ccd48e59",
      "new_mode": 33188,
      "new_path": "tests/test_manifest_xml.py"
    },
    {
      "type": "modify",
      "old_id": "efd9ffe56d7f3d2e73d05953094317b909774b4f",
      "old_mode": 33188,
      "old_path": "tests/test_subcmds_sync.py",
      "new_id": "9d079bb56a3b677be21b2b0810863a715ee65abb",
      "new_mode": 33188,
      "new_path": "tests/test_subcmds_sync.py"
    }
  ]
}
