Why gofff uses panic and why Gitea should too

Here is another nice example of a cryptic error message:

        	Error Trace:	dump_restore_test.go:61
        	            				git_helper_for_declarative_test.go:96
        	            				git_helper_for_declarative_test.go:91
        	            				git_helper_for_declarative_test.go:95
        	            				dump_restore_test.go:27
        	Error:      	Received unexpected error:
        	            	runtime error: index out of range [1] with length 1
        	Test:       	TestDumpRestore

that is trivial to find with the stack trace that goes with the panic:

        	code.gitea.io/gitea/modules/git.ParseDiffHunkString({0xc007378840, 0x4})
        		/drone/src/modules/git/diff.go:101 +0x2c6
        	code.gitea.io/gitea/services/migrations.(*GiteaLocalUploader).CreateReviews(0xc001fba480, {0x2dced00?, 0xc000000b40?}, {0xc0084ab450, 0x1, 0x7fa9cc2866e0?})
        		/drone/src/services/migrations/gitea_uploader.go:751 +0x61c
        	lab.forgefriends.org/friendlyforgeformat/gofff/domain.migrate({0x2ddca80, 0xc000044048}, {0x2df20e0, 0xc0015ca6e0}, {0x2df1e10, 0xc001fba480}, {0x292fd40, 0x292d978, 0x292d920, 0x292d938, ...}, ...)