+26
.github/workflows/go.yml
+51
.golangci.yml
+43
-15
README.md
+147
gitdiff/apply.go
+206
gitdiff/apply_binary.go
+235
gitdiff/apply_test.go
+152
gitdiff/apply_text.go
+30
gitdiff/assert_test.go
+41
-2
gitdiff/base85.go
+58
gitdiff/base85_test.go
+11
-4
gitdiff/binary.go
+10
gitdiff/binary_test.go
+103
-27
gitdiff/file_header.go
+64
-8
gitdiff/file_header_test.go
+281
gitdiff/format.go
+157
gitdiff/format_roundtrip_test.go
+28
gitdiff/format_test.go
+119
-2
gitdiff/gitdiff.go
+161
gitdiff/gitdiff_test.go
+203
-41
gitdiff/io.go
+236
-39
gitdiff/io_test.go
+16
-10
gitdiff/parser.go
+16
-2
gitdiff/parser_test.go
+483
gitdiff/patch_header.go
+590
gitdiff/patch_header_test.go
+166
gitdiff/patch_identity.go
+127
gitdiff/patch_identity_test.go
+124
gitdiff/testdata/apply/bin.go
gitdiff/testdata/apply/bin_fragment_delta_error.src
This is a binary file and will not be displayed.
+5
gitdiff/testdata/apply/bin_fragment_delta_error_dst_size.patch
+5
gitdiff/testdata/apply/bin_fragment_delta_error_incomplete_add.patch
+5
gitdiff/testdata/apply/bin_fragment_delta_error_incomplete_copy.patch
+5
gitdiff/testdata/apply/bin_fragment_delta_error_src_size.patch
gitdiff/testdata/apply/bin_fragment_delta_modify.out
This is a binary file and will not be displayed.
+13
gitdiff/testdata/apply/bin_fragment_delta_modify.patch
gitdiff/testdata/apply/bin_fragment_delta_modify.src
This is a binary file and will not be displayed.
gitdiff/testdata/apply/bin_fragment_delta_modify_large.out
This is a binary file and will not be displayed.
+166
gitdiff/testdata/apply/bin_fragment_delta_modify_large.patch
gitdiff/testdata/apply/bin_fragment_delta_modify_large.src
This is a binary file and will not be displayed.
gitdiff/testdata/apply/bin_fragment_literal_create.out
This is a binary file and will not be displayed.
+8
gitdiff/testdata/apply/bin_fragment_literal_create.patch
gitdiff/testdata/apply/bin_fragment_literal_create.src
This is a binary file and will not be displayed.
gitdiff/testdata/apply/bin_fragment_literal_modify.out
This is a binary file and will not be displayed.
+8
gitdiff/testdata/apply/bin_fragment_literal_modify.patch
gitdiff/testdata/apply/bin_fragment_literal_modify.src
This is a binary file and will not be displayed.
gitdiff/testdata/apply/file_bin_modify.out
This is a binary file and will not be displayed.
+13
gitdiff/testdata/apply/file_bin_modify.patch
gitdiff/testdata/apply/file_bin_modify.src
This is a binary file and will not be displayed.
+2
gitdiff/testdata/apply/file_mode_change.out
+3
gitdiff/testdata/apply/file_mode_change.patch
+2
gitdiff/testdata/apply/file_mode_change.src
+200
gitdiff/testdata/apply/file_text.src
gitdiff/testdata/apply/file_text_delete.out
This is a binary file and will not be displayed.
+206
gitdiff/testdata/apply/file_text_delete.patch
+106
gitdiff/testdata/apply/file_text_error_partial_delete.patch
+195
gitdiff/testdata/apply/file_text_modify.out
+62
gitdiff/testdata/apply/file_text_modify.patch
+5
gitdiff/testdata/apply/text_fragment_add_end.out
+9
gitdiff/testdata/apply/text_fragment_add_end.patch
+5
gitdiff/testdata/apply/text_fragment_add_end_noeol.out
+11
gitdiff/testdata/apply/text_fragment_add_end_noeol.patch
+5
gitdiff/testdata/apply/text_fragment_add_middle.out
+9
gitdiff/testdata/apply/text_fragment_add_middle.patch
+4
gitdiff/testdata/apply/text_fragment_add_start.out
+8
gitdiff/testdata/apply/text_fragment_add_start.patch
+10
gitdiff/testdata/apply/text_fragment_change_end.out
+9
gitdiff/testdata/apply/text_fragment_change_end.patch
+10
gitdiff/testdata/apply/text_fragment_change_end.src
+10
gitdiff/testdata/apply/text_fragment_change_end_eol.patch
+19
gitdiff/testdata/apply/text_fragment_change_exact.out
+12
gitdiff/testdata/apply/text_fragment_change_exact.patch
+30
gitdiff/testdata/apply/text_fragment_change_exact.src
+9
gitdiff/testdata/apply/text_fragment_change_middle.out
+12
gitdiff/testdata/apply/text_fragment_change_middle.patch
+10
gitdiff/testdata/apply/text_fragment_change_middle.src
+1
gitdiff/testdata/apply/text_fragment_change_single_noeol.out
+8
gitdiff/testdata/apply/text_fragment_change_single_noeol.patch
+1
gitdiff/testdata/apply/text_fragment_change_single_noeol.src
+4
gitdiff/testdata/apply/text_fragment_change_start.out
+9
gitdiff/testdata/apply/text_fragment_change_start.patch
+10
gitdiff/testdata/apply/text_fragment_change_start.src
gitdiff/testdata/apply/text_fragment_delete_all.out
This is a binary file and will not be displayed.
+8
gitdiff/testdata/apply/text_fragment_delete_all.patch
+4
gitdiff/testdata/apply/text_fragment_delete_all.src
+13
gitdiff/testdata/apply/text_fragment_error.src
+12
gitdiff/testdata/apply/text_fragment_error_context_conflict.patch
+12
gitdiff/testdata/apply/text_fragment_error_delete_conflict.patch
+7
gitdiff/testdata/apply/text_fragment_error_new_file.patch
+12
gitdiff/testdata/apply/text_fragment_error_short_src.patch
+12
gitdiff/testdata/apply/text_fragment_error_short_src_before.patch
+7
gitdiff/testdata/apply/text_fragment_new.patch
gitdiff/testdata/apply/text_fragment_new.src
This is a binary file and will not be displayed.