From 41003c548f9df2dc389f14be58b5a41d35d0e73d Mon Sep 17 00:00:00 2001 From: Dave Wapstra Date: Tue, 27 Sep 2022 13:49:17 +1300 Subject: [PATCH] Ignore empty info in diff line --- git/diff.py | 3 +++ test/test_diff.py | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/git/diff.py b/git/diff.py index 48b0e0d62..c4424592f 100644 --- a/git/diff.py +++ b/git/diff.py @@ -574,6 +574,9 @@ def _handle_diff_line(lines_bytes: bytes, repo: "Repo", index: DiffIndex) -> Non _, _, lines = lines.partition(":") for line in lines.split("\x00:"): + if not line: + # The line data is empty, skip + continue meta, _, path = line.partition("\x00") path = path.rstrip("\x00") a_blob_id: Optional[str] diff --git a/test/test_diff.py b/test/test_diff.py index dcf10018b..7065f0635 100644 --- a/test/test_diff.py +++ b/test/test_diff.py @@ -240,6 +240,12 @@ def test_diff_file_with_colon(self): output = fixture("diff_file_with_colon") res = [] Diff._handle_diff_line(output, None, res) + self.assertEqual(len(res), 3) + + def test_empty_diff(self): + res = [] + Diff._handle_diff_line(b"", None, res) + self.assertEqual(res, []) def test_diff_initial_commit(self): initial_commit = self.rorepo.commit("33ebe7acec14b25c5f84f35a664803fcab2f7781")