)]}'
{
  "commit": "4c37f588069d3a62b416ffcc25184119cd21e59e",
  "tree": "eca93e12e8b3de9bfcb48b7d449591d9aebf18b4",
  "parents": [
    "c86ddc1628981a96391700c041f8493e145aa4c8"
  ],
  "author": {
    "name": "Sam Saccone",
    "email": "samccone@google.com",
    "time": "Thu Sep 03 18:31:58 2026 +0000"
  },
  "committer": {
    "name": "gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Sep 21 09:19:39 2026 -0700"
  },
  "message": "project: pass --no-filter and --no-tags in DownloadPatchSet\n\nIn partial clone checkouts (e.g. --filter\u003dblob:none or blob:limit\u003d10k),\nDownloadPatchSet previously invoked `git fetch \u003cremote\u003e \u003cref\u003e` without\nexplicit filter overrides. Consequently, git fetch applied the\nconfigured partial clone filter from the remote and omitted the blobs\nfor the incoming change.\n\nWhen repo download subsequently checks out, cherry-picks, or merges the\ndownloaded commit, Git discovers that the required blobs are missing\nlocally and triggers on-demand unadvertised object fetches to the\npromisor remote (POST /git-upload-pack with `want \u003cblob_sha\u003e`). On large\nrepositories, server-side reachability validation for unadvertised\nobjects can result in expensive graph traversals, proxy/gateway timeouts\n(such as HTTP 502 or connection drops), and client fetch failures:\n  fatal: expected \u0027packfile\u0027\n  fatal: could not fetch \u003csha\u003e from promisor remote\n\nPass --no-filter (when Git \u003e\u003d 2.17.0) and --no-tags when fetching patch\nsets in DownloadPatchSet. Because the change ref is an advertised ref\ntip, fetching with --no-filter allows the server to generate a complete\npackfile containing all required blobs upfront without requiring\nunadvertised object reachability checks. All blobs are present in the\nlocal object database prior to checkout or cherry-pick, completely\npreventing on-demand promisor queries.\n\nTAG\u003dagy\nCONV\u003dbdc489e3-b20b-4ef3-b32e-549dbe21fc6c\n\nGoogle-Bug-Id: b/532920848\nTest: pytest tests/test_project.py\nChange-Id: Ic6118e4edeb754f0467e0580fd1d0965a6553153\nReviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/625621\nReviewed-by: Gavin Mak \u003cgavinmak@google.com\u003e\nTested-by: Sam Saccone \u003csamccone@google.com\u003e\nCommit-Queue: Sam Saccone \u003csamccone@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2d75d34933081e57fd6bbe577dd4cef88940b0bd",
      "old_mode": 33188,
      "old_path": "project.py",
      "new_id": "68986d4989acfeb7436ec9c6a644eb2cf7579361",
      "new_mode": 33188,
      "new_path": "project.py"
    },
    {
      "type": "modify",
      "old_id": "764fbc469d95dc6d7dbbc6d2d5475da4f7fad644",
      "old_mode": 33188,
      "old_path": "tests/test_project.py",
      "new_id": "f82e1f66a5d2cdf2d9703171bf0b13c7887ae704",
      "new_mode": 33188,
      "new_path": "tests/test_project.py"
    }
  ]
}
