diff --git a/project.py b/project.py
index 2d75d34..68986d4 100644
--- a/project.py
+++ b/project.py
@@ -2218,7 +2218,11 @@
         """Download a single patch set of a single change to FETCH_HEAD."""
         remote = self.GetRemote()
 
-        cmd = ["fetch", remote.name]
+        cmd = ["fetch"]
+        if git_require((2, 17, 0)):
+            cmd.append("--no-filter")
+        cmd.append("--no-tags")
+        cmd.append(remote.name)
         cmd.append(
             "refs/changes/%2.2d/%d/%d" % (change_id % 100, change_id, patch_id)
         )
diff --git a/tests/test_project.py b/tests/test_project.py
index 764fbc4..f82e1f6 100644
--- a/tests/test_project.py
+++ b/tests/test_project.py
@@ -3661,3 +3661,63 @@
                 self._git(worktree, "status", "--porcelain").splitlines(),
                 [" M keep.txt", "?? junk"],
             )
+
+
+class DownloadPatchSetTests(unittest.TestCase):
+    """Tests for Project.DownloadPatchSet."""
+
+    def setUp(self) -> None:
+        self.proj = mock.MagicMock()
+        self.proj.GetRevisionId.return_value = "base_rev_123"
+        self.proj.bare_git.rev_parse.return_value = "commit_sha_456"
+        mock_remote = mock.MagicMock()
+        mock_remote.name = "origin"
+        self.proj.GetRemote.return_value = mock_remote
+
+    def test_download_patch_set_with_no_filter_and_no_tags(self) -> None:
+        """Test DownloadPatchSet includes --no-filter and --no-tags."""
+        with mock.patch(
+            "project.git_require", return_value=True
+        ) as mock_git_require:
+            with mock.patch("project.GitCommand") as mock_git_cmd:
+                mock_cmd_instance = mock.MagicMock()
+                mock_cmd_instance.Wait.return_value = 0
+                mock_git_cmd.return_value = mock_cmd_instance
+
+                dl = project.Project.DownloadPatchSet(self.proj, 12345, 2)
+
+                mock_git_require.assert_called_once_with((2, 17, 0))
+                mock_git_cmd.assert_called_once_with(
+                    self.proj,
+                    [
+                        "fetch",
+                        "--no-filter",
+                        "--no-tags",
+                        "origin",
+                        "refs/changes/45/12345/2",
+                    ],
+                    bare=True,
+                    verify_command=True,
+                )
+                self.assertEqual(dl.change_id, 12345)
+                self.assertEqual(dl.ps_id, 2)
+                self.assertEqual(dl.commit, "commit_sha_456")
+
+    def test_download_patch_set_legacy_git_omits_no_filter(self) -> None:
+        """Test DownloadPatchSet omits --no-filter on git < 2.17."""
+        with mock.patch("project.git_require", return_value=False):
+            with mock.patch("project.GitCommand") as mock_git_cmd:
+                mock_cmd_instance = mock.MagicMock()
+                mock_cmd_instance.Wait.return_value = 0
+                mock_git_cmd.return_value = mock_cmd_instance
+
+                dl = project.Project.DownloadPatchSet(self.proj, 54321, 1)
+
+                mock_git_cmd.assert_called_once_with(
+                    self.proj,
+                    ["fetch", "--no-tags", "origin", "refs/changes/21/54321/1"],
+                    bare=True,
+                    verify_command=True,
+                )
+                self.assertEqual(dl.change_id, 54321)
+                self.assertEqual(dl.ps_id, 1)
