go-gitdiff
go-gitdiff copied to clipboard
Support non-strict patch application
Currently, an Applier
can only apply patches in "strict" mode, where line numbers and context lines must match exactly. Git supports a more flexible model when applying patches that allow them to work in more situations, such as cherry-picking changes to different branches:
- Look for matches on different lines near the lines in the patch
- Look for matches with fewer lines of context
- Look for matches ignoring certain types of whitespace changes
I think copying Git's whitespace normalization could get complicated, but it would be nice to at least support exact matches on different lines or matches with reduced context.