mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 19:06:18 +01:00 
			
		
		
		
	Fix diff skipping lines (#13154)
* Fix diff skipping lines ParsePatch previously just skipped all lines that start with "+++ " or "--- " and makes no attempt to see these lines in context. This PR rewrites ParsePatch to pay attention to context and position within a patch, ensuring that --- and +++ are only skipped if appropriate. This PR also fixes several issues with incomplete files. Fix https://codeberg.org/Codeberg/Community/issues/308 Fix #13153 Signed-off-by: Andrew Thornton <art27@cantab.net> * Add testcase Signed-off-by: Andrew Thornton <art27@cantab.net> * fix comment * simplify error handling Signed-off-by: Andrew Thornton <art27@cantab.net> * never return io.EOF Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
		| @@ -182,6 +182,27 @@ rename to a b/a a/file b/b file | ||||
| 			oldFilename: "a b/file b/a a/file", | ||||
| 			filename:    "a b/a a/file b/b file", | ||||
| 		}, | ||||
| 		{ | ||||
| 			name: "minuses-and-pluses", | ||||
| 			gitdiff: `diff --git a/minuses-and-pluses b/minuses-and-pluses | ||||
| index 6961180..9ba1a00 100644 | ||||
| --- a/minuses-and-pluses | ||||
| +++ b/minuses-and-pluses | ||||
| @@ -1,4 +1,4 @@ | ||||
| --- 1st line | ||||
| -++ 2nd line | ||||
| --- 3rd line | ||||
| -++ 4th line | ||||
| +++ 1st line | ||||
| +-- 2nd line | ||||
| +++ 3rd line | ||||
| +-- 4th line | ||||
| `, | ||||
| 			oldFilename: "minuses-and-pluses", | ||||
| 			filename:    "minuses-and-pluses", | ||||
| 			addition:    4, | ||||
| 			deletion:    4, | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| 	for _, testcase := range tests { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user